summaryrefslogtreecommitdiff
path: root/py/obj.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2020-02-11 11:48:28 +1100
committerDamien George <damien.p.george@gmail.com>2020-02-13 11:52:40 +1100
commitad7213d3c31bccb26a3f54f7492ccf4b0cc920f3 (patch)
tree2ab64a805c05d790579052f557a8168061afcebe /py/obj.c
parent97eca38c4f03e76bd464fb25974544a043af2a9e (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.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/py/obj.c b/py/obj.c
index 382815b3f..eef24a9f6 100644
--- a/py/obj.c
+++ b/py/obj.c
@@ -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));
}
}
}