objexcept: Add mp_obj_new_exception_arg1() convenience function.
This commit is contained in:
parent
b418b6fb0d
commit
dec31bb872
1
py/obj.h
1
py/obj.h
|
@ -351,6 +351,7 @@ mp_obj_t mp_obj_new_float(mp_float_t val);
|
|||
mp_obj_t mp_obj_new_complex(mp_float_t real, mp_float_t imag);
|
||||
#endif
|
||||
mp_obj_t mp_obj_new_exception(const mp_obj_type_t *exc_type);
|
||||
mp_obj_t mp_obj_new_exception_arg1(const mp_obj_type_t *exc_type, mp_obj_t arg);
|
||||
mp_obj_t mp_obj_new_exception_args(const mp_obj_type_t *exc_type, uint n_args, const mp_obj_t *args);
|
||||
mp_obj_t mp_obj_new_exception_msg(const mp_obj_type_t *exc_type, const char *msg);
|
||||
mp_obj_t mp_obj_new_exception_msg_varg(const mp_obj_type_t *exc_type, const char *fmt, ...); // counts args by number of % symbols in fmt, excluding %%; can only handle void* sizes (ie no float/double!)
|
||||
|
|
|
@ -191,6 +191,11 @@ mp_obj_t mp_obj_new_exception(const mp_obj_type_t *exc_type) {
|
|||
return mp_obj_new_exception_args(exc_type, 0, NULL);
|
||||
}
|
||||
|
||||
// "Optimized" version for common(?) case of having 1 exception arg
|
||||
mp_obj_t mp_obj_new_exception_arg1(const mp_obj_type_t *exc_type, mp_obj_t arg) {
|
||||
return mp_obj_new_exception_args(exc_type, 1, &arg);
|
||||
}
|
||||
|
||||
mp_obj_t mp_obj_new_exception_args(const mp_obj_type_t *exc_type, uint n_args, const mp_obj_t *args) {
|
||||
assert(exc_type->make_new == mp_obj_exception_make_new);
|
||||
return exc_type->make_new((mp_obj_t)exc_type, n_args, 0, args);
|
||||
|
|
Loading…
Reference in New Issue