summaryrefslogtreecommitdiff
path: root/py/objnamedtuple.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/objnamedtuple.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/objnamedtuple.c')
-rw-r--r--py/objnamedtuple.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/py/objnamedtuple.c b/py/objnamedtuple.c
index 3e0f66139..8e714aa32 100644
--- a/py/objnamedtuple.c
+++ b/py/objnamedtuple.c
@@ -98,13 +98,13 @@ STATIC mp_obj_t namedtuple_make_new(const mp_obj_type_t *type_in, size_t n_args,
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
mp_arg_error_terse_mismatch();
} else if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_NORMAL) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
+ mp_raise_msg_varg(&mp_type_TypeError,
"function takes %d positional arguments but %d were given",
- num_fields, n_args + n_kw));
+ num_fields, n_args + n_kw);
} else if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_DETAILED) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
+ mp_raise_msg_varg(&mp_type_TypeError,
"%q() takes %d positional arguments but %d were given",
- type->base.name, num_fields, n_args + n_kw));
+ type->base.name, num_fields, n_args + n_kw);
}
}
@@ -124,16 +124,15 @@ STATIC mp_obj_t namedtuple_make_new(const mp_obj_type_t *type_in, size_t n_args,
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
mp_arg_error_terse_mismatch();
} else {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "unexpected keyword argument '%q'", kw));
+ mp_raise_msg_varg(&mp_type_TypeError, "unexpected keyword argument '%q'", kw);
}
}
if (tuple->items[id] != MP_OBJ_NULL) {
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
mp_arg_error_terse_mismatch();
} else {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "function got multiple values for argument '%q'", kw));
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function got multiple values for argument '%q'", kw);
}
}
tuple->items[id] = args[i + 1];