py: Add mp_raise_OSError(errno) helper function. · MicroPythonNexus/circuitpython@3a0a771 · GitHub
Skip to content

Commit 3a0a771

Browse files
committed
py: Add mp_raise_OSError(errno) helper function.
This is an often used code pattern, and its use reduces code size of the core by about 100 bytes.
1 parent 0363e1d commit 3a0a771

5 files changed

Lines changed: 16 additions & 11 deletions

File tree

py/modio.c

Lines changed: 1 addition & 1 deletion

py/modthread.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ STATIC mp_obj_t thread_lock_acquire(size_t n_args, const mp_obj_t *args) {
9393
self->locked = true;
9494
return mp_const_true;
9595
} else {
96-
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(-ret)));
96+
mp_raise_OSError(-ret);
9797
}
9898
#endif
9999
}

py/runtime.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,6 +1405,10 @@ NORETURN void mp_raise_TypeError(const char *msg) {
14051405
mp_raise_msg(&mp_type_TypeError, msg);
14061406
}
14071407

1408+
NORETURN void mp_raise_OSError(int errno_) {
1409+
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno_)));
1410+
}
1411+
14081412
NORETURN void mp_not_implemented(const char *msg) {
14091413
mp_raise_msg(&mp_type_NotImplementedError, msg);
14101414
}

py/runtime.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ NORETURN void mp_raise_msg(const mp_obj_type_t *exc_type, const char *msg);
137137
//NORETURN void nlr_raise_msg_varg(const mp_obj_type_t *exc_type, const char *fmt, ...);
138138
NORETURN void mp_raise_ValueError(const char *msg);
139139
NORETURN void mp_raise_TypeError(const char *msg);
140+
NORETURN void mp_raise_OSError(int errno_);
140141
NORETURN void mp_not_implemented(const char *msg); // Raise NotImplementedError with given message
141142
NORETURN void mp_exc_recursion_depth(void);
142143

py/stream.c

Lines changed: 9 additions & 9 deletions

0 commit comments

Comments
 (0)