summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2020-11-19 16:13:54 -0600
committerJeff Epler <jepler@gmail.com>2020-11-19 16:15:06 -0600
commitc06fc8e02dc7c17e827e3fe736dc7226d7819452 (patch)
treeb125b0da810b21b895d7f9cc909002aff7f19d96 /py
parentd5f6748d1bea832c6f483ca8b0095e776eaca2df (diff)
Introduce, use mp_raise_arg1
This raises an exception with a given object value. Saves a bit of code size.
Diffstat (limited to 'py')
-rw-r--r--py/modsys.c2
-rw-r--r--py/objdict.c6
-rw-r--r--py/objset.c2
-rw-r--r--py/objstr.c2
-rw-r--r--py/pystack.c4
-rw-r--r--py/runtime.c8
-rw-r--r--py/runtime.h1
7 files changed, 15 insertions, 10 deletions
diff --git a/py/modsys.c b/py/modsys.c
index a1d2cf831..31f28a36f 100644
--- a/py/modsys.c
+++ b/py/modsys.c
@@ -96,7 +96,7 @@ STATIC mp_obj_t mp_sys_exit(size_t n_args, const mp_obj_t *args) {
if (n_args == 0) {
exc = mp_obj_new_exception(&mp_type_SystemExit);
} else {
- exc = mp_obj_new_exception_arg1(&mp_type_SystemExit, args[0]);
+ mp_raise_arg1(&mp_type_SystemExit, args[0]);
}
nlr_raise(exc);
}
diff --git a/py/objdict.c b/py/objdict.c
index 63fd86f35..098aec5d2 100644
--- a/py/objdict.c
+++ b/py/objdict.c
@@ -169,7 +169,7 @@ mp_obj_t mp_obj_dict_get(mp_obj_t self_in, mp_obj_t index) {
mp_obj_dict_t *self = MP_OBJ_TO_PTR(self_in);
mp_map_elem_t *elem = mp_map_lookup(&self->map, index, MP_MAP_LOOKUP);
if (elem == NULL) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_KeyError, index));
+ mp_raise_arg1(&mp_type_KeyError, index);
} else {
return elem->value;
}
@@ -185,7 +185,7 @@ STATIC mp_obj_t dict_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
mp_obj_dict_t *self = MP_OBJ_TO_PTR(self_in);
mp_map_elem_t *elem = mp_map_lookup(&self->map, index, MP_MAP_LOOKUP);
if (elem == NULL) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_KeyError, index));
+ mp_raise_arg1(&mp_type_KeyError, index);
} else {
return elem->value;
}
@@ -272,7 +272,7 @@ STATIC mp_obj_t dict_get_helper(size_t n_args, const mp_obj_t *args, mp_map_look
if (elem == NULL || elem->value == MP_OBJ_NULL) {
if (n_args == 2) {
if (lookup_kind == MP_MAP_LOOKUP_REMOVE_IF_FOUND) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_KeyError, args[1]));
+ mp_raise_arg1(&mp_type_KeyError, args[1]);
} else {
value = mp_const_none;
}
diff --git a/py/objset.c b/py/objset.c
index 45b5c1260..c5d54aede 100644
--- a/py/objset.c
+++ b/py/objset.c
@@ -378,7 +378,7 @@ STATIC mp_obj_t set_remove(mp_obj_t self_in, mp_obj_t item) {
check_set(self_in);
mp_obj_set_t *self = MP_OBJ_TO_PTR(self_in);
if (mp_set_lookup(&self->set, item, MP_MAP_LOOKUP_REMOVE_IF_FOUND) == MP_OBJ_NULL) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_KeyError, item));
+ mp_raise_arg1(&mp_type_KeyError, item);
}
return mp_const_none;
}
diff --git a/py/objstr.c b/py/objstr.c
index 6a03f5fc3..34ccab86d 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -1087,7 +1087,7 @@ STATIC vstr_t mp_obj_str_format_helper(const char *str, const char *top, int *ar
field_name = lookup;
mp_map_elem_t *key_elem = mp_map_lookup(kwargs, field_q, MP_MAP_LOOKUP);
if (key_elem == NULL) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_KeyError, field_q));
+ mp_raise_arg1(&mp_type_KeyError, field_q);
}
arg = key_elem->value;
}
diff --git a/py/pystack.c b/py/pystack.c
index f79ea9210..0def75b10 100644
--- a/py/pystack.c
+++ b/py/pystack.c
@@ -43,8 +43,8 @@ void *mp_pystack_alloc(size_t n_bytes) {
#endif
if (MP_STATE_THREAD(pystack_cur) + n_bytes > MP_STATE_THREAD(pystack_end)) {
// out of memory in the pystack
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_RuntimeError,
- MP_OBJ_NEW_QSTR(MP_QSTR_pystack_space_exhausted)));
+ mp_raise_arg1(&mp_type_RuntimeError,
+ MP_OBJ_NEW_QSTR(MP_QSTR_pystack_space_exhausted));
}
void *ptr = MP_STATE_THREAD(pystack_cur);
MP_STATE_THREAD(pystack_cur) += n_bytes;
diff --git a/py/runtime.c b/py/runtime.c
index e63e2337d..3745e16e3 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -1514,6 +1514,10 @@ NORETURN void m_malloc_fail(size_t num_bytes) {
translate("memory allocation failed, allocating %u bytes"), (uint)num_bytes);
}
+NORETURN void mp_raise_arg1(const mp_obj_type_t *exc_type, mp_obj_t arg) {
+ nlr_raise(mp_obj_new_exception_arg1(exc_type, arg));
+}
+
NORETURN void mp_raise_msg(const mp_obj_type_t *exc_type, const compressed_string_t *msg) {
if (msg == NULL) {
nlr_raise(mp_obj_new_exception(exc_type));
@@ -1580,7 +1584,7 @@ NORETURN void mp_raise_TypeError_varg(const compressed_string_t *fmt, ...) {
}
NORETURN void mp_raise_OSError(int errno_) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno_)));
+ mp_raise_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno_));
}
NORETURN void mp_raise_OSError_msg(const compressed_string_t *msg) {
@@ -1607,7 +1611,7 @@ NORETURN void mp_raise_ConnectionError(const compressed_string_t *msg) {
}
NORETURN void mp_raise_BrokenPipeError(void) {
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_BrokenPipeError, MP_OBJ_NEW_SMALL_INT(MP_EPIPE)));
+ mp_raise_arg1(&mp_type_BrokenPipeError, MP_OBJ_NEW_SMALL_INT(MP_EPIPE));
}
NORETURN void mp_raise_NotImplementedError(const compressed_string_t *msg) {
diff --git a/py/runtime.h b/py/runtime.h
index ad7d0feab..5e8fda35c 100644
--- a/py/runtime.h
+++ b/py/runtime.h
@@ -150,6 +150,7 @@ mp_obj_t mp_import_name(qstr name, mp_obj_t fromlist, mp_obj_t level);
mp_obj_t mp_import_from(mp_obj_t module, qstr name);
void mp_import_all(mp_obj_t module);
+NORETURN void mp_raise_arg1(const mp_obj_type_t *exc_type, mp_obj_t arg);
NORETURN void mp_raise_msg(const mp_obj_type_t *exc_type, const compressed_string_t *msg);
NORETURN void mp_raise_msg_varg(const mp_obj_type_t *exc_type, const compressed_string_t *fmt, ...);
NORETURN void mp_raise_msg_vlist(const mp_obj_type_t *exc_type, const compressed_string_t *fmt, va_list argptr);