diff options
author | Damien George <damien.p.george@gmail.com> | 2015-01-20 14:11:27 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-01-20 14:11:27 +0000 |
commit | 50149a573063dc4a1a6541686e61c310d5fc8353 (patch) | |
tree | ba09b7f32e24ee050d4888c7d1e588882d142770 /py/objexcept.c | |
parent | ff8dd3f486afb0d6ff1427d8a6a8a8ed73baa660 (diff) |
py: Use mp_arg_check_num in some _make_new functions.
Reduces stmhal code size by about 250 bytes.
Diffstat (limited to 'py/objexcept.c')
-rw-r--r-- | py/objexcept.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/py/objexcept.c b/py/objexcept.c index 837e2e85e..e872db341 100644 --- a/py/objexcept.c +++ b/py/objexcept.c @@ -30,11 +30,11 @@ #include <stdio.h> #include "py/mpstate.h" -#include "py/nlr.h" #include "py/objlist.h" #include "py/objstr.h" #include "py/objtuple.h" #include "py/objtype.h" +#include "py/runtime.h" #include "py/gc.h" // Instance of MemoryError exception - needed by mp_malloc_fail @@ -115,23 +115,17 @@ STATIC void mp_obj_exception_print(void (*print)(void *env, const char *fmt, ... } mp_obj_t mp_obj_exception_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) { - mp_obj_type_t *type = type_in; - - if (n_kw != 0) { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "%s does not take keyword arguments", mp_obj_get_type_str(type_in))); - } - + mp_arg_check_num(n_args, n_kw, 0, MP_OBJ_FUN_ARGS_MAX, false); mp_obj_exception_t *o = m_new_obj_var_maybe(mp_obj_exception_t, mp_obj_t, 0); if (o == NULL) { // Couldn't allocate heap memory; use local data instead. o = &MP_STATE_VM(mp_emergency_exception_obj); // We can't store any args. - n_args = 0; o->args = mp_const_empty_tuple; } else { o->args = mp_obj_new_tuple(n_args, args); } - o->base.type = type; + o->base.type = type_in; o->traceback = MP_OBJ_NULL; return o; } |