summaryrefslogtreecommitdiffstatshomepage
path: root/py/bc.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/bc.c
parent97eca38c4f03e76bd464fb25974544a043af2a9e (diff)
downloadmicropython-ad7213d3c31bccb26a3f54f7492ccf4b0cc920f3.tar.gz
micropython-ad7213d3c31bccb26a3f54f7492ccf4b0cc920f3.zip
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/bc.c')
-rw-r--r--py/bc.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/py/bc.c b/py/bc.c
index 7dd4b2246a..417ac3cf33 100644
--- a/py/bc.c
+++ b/py/bc.c
@@ -83,12 +83,12 @@ STATIC NORETURN void fun_pos_args_mismatch(mp_obj_fun_bc_t *f, size_t expected,
mp_arg_error_terse_mismatch();
#elif MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_NORMAL
(void)f;
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "function takes %d positional arguments but %d were given", expected, given));
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function takes %d positional arguments but %d were given", expected, given);
#elif 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",
- mp_obj_fun_get_name(MP_OBJ_FROM_PTR(f)), expected, given));
+ mp_obj_fun_get_name(MP_OBJ_FROM_PTR(f)), expected, given);
#endif
}
@@ -203,8 +203,8 @@ void mp_setup_code_state(mp_code_state_t *code_state, size_t n_args, size_t n_kw
for (size_t j = 0; j < n_pos_args + n_kwonly_args; j++) {
if (wanted_arg_name == arg_names[j]) {
if (code_state->state[n_state - 1 - j] != MP_OBJ_NULL) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "function got multiple values for argument '%q'", MP_OBJ_QSTR_VALUE(wanted_arg_name)));
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function got multiple values for argument '%q'", MP_OBJ_QSTR_VALUE(wanted_arg_name));
}
code_state->state[n_state - 1 - j] = kwargs[2 * i + 1];
goto continue2;
@@ -215,8 +215,8 @@ void mp_setup_code_state(mp_code_state_t *code_state, size_t n_args, size_t n_kw
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
mp_raise_TypeError("unexpected keyword argument");
} else {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "unexpected keyword argument '%q'", MP_OBJ_QSTR_VALUE(wanted_arg_name)));
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "unexpected keyword argument '%q'", MP_OBJ_QSTR_VALUE(wanted_arg_name));
}
}
mp_obj_dict_store(dict, kwargs[2 * i], kwargs[2 * i + 1]);
@@ -241,8 +241,8 @@ continue2:;
// Check that all mandatory positional args are specified
while (d < &code_state->state[n_state]) {
if (*d++ == MP_OBJ_NULL) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "function missing required positional argument #%d", &code_state->state[n_state] - d));
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function missing required positional argument #%d", &code_state->state[n_state] - d);
}
}
@@ -257,8 +257,8 @@ continue2:;
if (elem != NULL) {
code_state->state[n_state - 1 - n_pos_args - i] = elem->value;
} else {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
- "function missing required keyword argument '%q'", MP_OBJ_QSTR_VALUE(arg_names[n_pos_args + i])));
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function missing required keyword argument '%q'", MP_OBJ_QSTR_VALUE(arg_names[n_pos_args + i]));
}
}
}