py: Use mp_arg_check_num in more places.

Updated functions now do proper checking that n_kw==0, and are simpler
because they don't have to explicitly raise an exception.  Down side is
that the error messages no longer include the function name, but that's
acceptable.

Saves order 300 text bytes on x64 and ARM.
This commit is contained in:
Damien George
2014-05-11 18:37:21 +01:00
parent 1d34e32431
commit ee7a880d6e
9 changed files with 23 additions and 34 deletions

View File

@@ -49,12 +49,14 @@ STATIC void bool_print(void (*print)(void *env, const char *fmt, ...), void *env
}
STATIC mp_obj_t bool_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp_obj_t *args) {
// TODO check n_kw == 0
mp_arg_check_num(n_args, n_kw, 0, 1, false);
switch (n_args) {
case 0: return mp_const_false;
case 1: if (mp_obj_is_true(args[0])) { return mp_const_true; } else { return mp_const_false; }
default: nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "bool takes at most 1 argument, %d given", n_args));
case 0:
return mp_const_false;
case 1:
default: // must be 0 or 1
if (mp_obj_is_true(args[0])) { return mp_const_true; } else { return mp_const_false; }
}
}