diff options
author | Damien George <damien.p.george@gmail.com> | 2020-02-11 11:48:28 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2020-02-13 11:52:40 +1100 |
commit | ad7213d3c31bccb26a3f54f7492ccf4b0cc920f3 (patch) | |
tree | 2ab64a805c05d790579052f557a8168061afcebe /py/obj.c | |
parent | 97eca38c4f03e76bd464fb25974544a043af2a9e (diff) |
py: Add mp_raise_msg_varg helper and use it where appropriate.
This commit adds mp_raise_msg_varg(type, fmt, ...) as a helper for
nlr_raise(mp_obj_new_exception_msg_varg(type, fmt, ...)). It makes the
C-level API for raising exceptions more consistent, and reduces code size
on most ports:
bare-arm: +28 +0.042%
minimal x86: +100 +0.067%
unix x64: -56 -0.011%
unix nanbox: -300 -0.068%
stm32: -204 -0.054% PYBV10
cc3200: +0 +0.000%
esp8266: -64 -0.010% GENERIC
esp32: -104 -0.007% GENERIC
nrf: -136 -0.094% pca10040
samd: +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
Diffstat (limited to 'py/obj.c')
-rw-r--r-- | py/obj.c | 39 |
1 files changed, 19 insertions, 20 deletions
@@ -362,8 +362,8 @@ mp_float_t mp_obj_get_float(mp_obj_t arg) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("can't convert to float"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "can't convert %s to float", mp_obj_get_type_str(arg))); + mp_raise_msg_varg(&mp_type_TypeError, + "can't convert %s to float", mp_obj_get_type_str(arg)); } } @@ -395,8 +395,8 @@ void mp_obj_get_complex(mp_obj_t arg, mp_float_t *real, mp_float_t *imag) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("can't convert to complex"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "can't convert %s to complex", mp_obj_get_type_str(arg))); + mp_raise_msg_varg(&mp_type_TypeError, + "can't convert %s to complex", mp_obj_get_type_str(arg)); } } } @@ -413,8 +413,8 @@ void mp_obj_get_array(mp_obj_t o, size_t *len, mp_obj_t **items) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("expected tuple/list"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "object '%s' isn't a tuple or list", mp_obj_get_type_str(o))); + mp_raise_msg_varg(&mp_type_TypeError, + "object '%s' isn't a tuple or list", mp_obj_get_type_str(o)); } } } @@ -427,8 +427,8 @@ void mp_obj_get_array_fixed_n(mp_obj_t o, size_t len, mp_obj_t **items) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_ValueError("tuple/list has wrong length"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, - "requested length %d but object has length %d", (int)len, (int)seq_len)); + mp_raise_msg_varg(&mp_type_ValueError, + "requested length %d but object has length %d", (int)len, (int)seq_len); } } } @@ -442,9 +442,9 @@ size_t mp_get_index(const mp_obj_type_t *type, size_t len, mp_obj_t index, bool if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("indices must be integers"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, + mp_raise_msg_varg(&mp_type_TypeError, "%q indices must be integers, not %s", - type->name, mp_obj_get_type_str(index))); + type->name, mp_obj_get_type_str(index)); } } @@ -462,8 +462,7 @@ size_t mp_get_index(const mp_obj_type_t *type, size_t len, mp_obj_t index, bool if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_msg(&mp_type_IndexError, "index out of range"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_IndexError, - "%q index out of range", type->name)); + mp_raise_msg_varg(&mp_type_IndexError, "%q index out of range", type->name); } } } @@ -497,8 +496,8 @@ mp_obj_t mp_obj_len(mp_obj_t o_in) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("object has no len"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "object of type '%s' has no len()", mp_obj_get_type_str(o_in))); + mp_raise_msg_varg(&mp_type_TypeError, + "object of type '%s' has no len()", mp_obj_get_type_str(o_in)); } } else { return len; @@ -538,22 +537,22 @@ mp_obj_t mp_obj_subscr(mp_obj_t base, mp_obj_t index, mp_obj_t value) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("object doesn't support item deletion"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "'%s' object doesn't support item deletion", mp_obj_get_type_str(base))); + mp_raise_msg_varg(&mp_type_TypeError, + "'%s' object doesn't support item deletion", mp_obj_get_type_str(base)); } } else if (value == MP_OBJ_SENTINEL) { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("object isn't subscriptable"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "'%s' object isn't subscriptable", mp_obj_get_type_str(base))); + mp_raise_msg_varg(&mp_type_TypeError, + "'%s' object isn't subscriptable", mp_obj_get_type_str(base)); } } else { if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) { mp_raise_TypeError("object doesn't support item assignment"); } else { - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, - "'%s' object doesn't support item assignment", mp_obj_get_type_str(base))); + mp_raise_msg_varg(&mp_type_TypeError, + "'%s' object doesn't support item assignment", mp_obj_get_type_str(base)); } } } |