diff options
author | Damien George <damien.p.george@gmail.com> | 2014-05-11 18:37:21 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-05-11 18:37:21 +0100 |
commit | ee7a880d6e669423309c3a5f8c20b59027604572 (patch) | |
tree | d3b2f09d32316e60a77672c0650e32a81f2ee2d1 /py/objint.c | |
parent | 1d34e324319c3b9c22ea045d1fbe526bc05a48b4 (diff) |
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.
Diffstat (limited to 'py/objint.c')
-rw-r--r-- | py/objint.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/py/objint.c b/py/objint.c index 73b4c5d0b..d1d99a253 100644 --- a/py/objint.c +++ b/py/objint.c @@ -46,7 +46,7 @@ // This dispatcher function is expected to be independent of the implementation of long int STATIC mp_obj_t mp_obj_int_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, 2, false); switch (n_args) { case 0: @@ -67,16 +67,13 @@ STATIC mp_obj_t mp_obj_int_make_new(mp_obj_t type_in, uint n_args, uint n_kw, co } case 2: - { + default: { // should be a string, parse it // TODO proper error checking of argument types uint l; const char *s = mp_obj_str_get_data(args[0], &l); return mp_parse_num_integer(s, l, mp_obj_get_int(args[1])); } - - default: - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "int takes at most 2 arguments, %d given", n_args)); } } |