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.
This commit is contained in:
parent
0363e1d7b5
commit
3a0a771730
@ -102,7 +102,7 @@ STATIC mp_obj_t bufwriter_flush(mp_obj_t self_in) {
|
||||
assert(out_sz == self->len);
|
||||
self->len = 0;
|
||||
if (err != 0) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(err)));
|
||||
mp_raise_OSError(err);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ STATIC mp_obj_t thread_lock_acquire(size_t n_args, const mp_obj_t *args) {
|
||||
self->locked = true;
|
||||
return mp_const_true;
|
||||
} else {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(-ret)));
|
||||
mp_raise_OSError(-ret);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -1405,6 +1405,10 @@ NORETURN void mp_raise_TypeError(const char *msg) {
|
||||
mp_raise_msg(&mp_type_TypeError, msg);
|
||||
}
|
||||
|
||||
NORETURN void mp_raise_OSError(int errno_) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno_)));
|
||||
}
|
||||
|
||||
NORETURN void mp_not_implemented(const char *msg) {
|
||||
mp_raise_msg(&mp_type_NotImplementedError, msg);
|
||||
}
|
||||
|
@ -137,6 +137,7 @@ NORETURN void mp_raise_msg(const mp_obj_type_t *exc_type, const char *msg);
|
||||
//NORETURN void nlr_raise_msg_varg(const mp_obj_type_t *exc_type, const char *fmt, ...);
|
||||
NORETURN void mp_raise_ValueError(const char *msg);
|
||||
NORETURN void mp_raise_TypeError(const char *msg);
|
||||
NORETURN void mp_raise_OSError(int errno_);
|
||||
NORETURN void mp_not_implemented(const char *msg); // Raise NotImplementedError with given message
|
||||
NORETURN void mp_exc_recursion_depth(void);
|
||||
|
||||
|
18
py/stream.c
18
py/stream.c
@ -159,7 +159,7 @@ STATIC mp_obj_t stream_read_generic(size_t n_args, const mp_obj_t *args, byte fl
|
||||
}
|
||||
break;
|
||||
}
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
}
|
||||
|
||||
if (out_sz < more_bytes) {
|
||||
@ -227,7 +227,7 @@ STATIC mp_obj_t stream_read_generic(size_t n_args, const mp_obj_t *args, byte fl
|
||||
// this as EOF.
|
||||
return mp_const_none;
|
||||
}
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
} else {
|
||||
vstr.len = out_sz;
|
||||
return mp_obj_new_str_from_vstr(STREAM_CONTENT_TYPE(stream_p), &vstr);
|
||||
@ -256,7 +256,7 @@ mp_obj_t mp_stream_write(mp_obj_t self_in, const void *buf, size_t len, byte fla
|
||||
// no single byte could be readily written to it."
|
||||
return mp_const_none;
|
||||
}
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
} else {
|
||||
return MP_OBJ_NEW_SMALL_INT(out_sz);
|
||||
}
|
||||
@ -315,7 +315,7 @@ STATIC mp_obj_t stream_readinto(size_t n_args, const mp_obj_t *args) {
|
||||
if (mp_is_nonblocking_error(error)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
} else {
|
||||
return MP_OBJ_NEW_SMALL_INT(out_sz);
|
||||
}
|
||||
@ -343,7 +343,7 @@ STATIC mp_obj_t stream_readall(mp_obj_t self_in) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
}
|
||||
if (out_sz == 0) {
|
||||
break;
|
||||
@ -402,7 +402,7 @@ STATIC mp_obj_t stream_unbuffered_readline(size_t n_args, const mp_obj_t *args)
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
}
|
||||
if (out_sz == 0) {
|
||||
done:
|
||||
@ -457,7 +457,7 @@ STATIC mp_obj_t stream_seek(size_t n_args, const mp_obj_t *args) {
|
||||
int error;
|
||||
mp_uint_t res = stream_p->ioctl(args[0], MP_STREAM_SEEK, (mp_uint_t)(uintptr_t)&seek_s, &error);
|
||||
if (res == MP_STREAM_ERROR) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
}
|
||||
|
||||
// TODO: Could be uint64
|
||||
@ -478,7 +478,7 @@ STATIC mp_obj_t stream_flush(mp_obj_t self) {
|
||||
int error;
|
||||
mp_uint_t res = stream_p->ioctl(self, MP_STREAM_FLUSH, 0, &error);
|
||||
if (res == MP_STREAM_ERROR) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
@ -500,7 +500,7 @@ STATIC mp_obj_t stream_ioctl(size_t n_args, const mp_obj_t *args) {
|
||||
int error;
|
||||
mp_uint_t res = stream_p->ioctl(args[0], mp_obj_get_int(args[1]), val, &error);
|
||||
if (res == MP_STREAM_ERROR) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error)));
|
||||
mp_raise_OSError(error);
|
||||
}
|
||||
|
||||
return mp_obj_new_int(res);
|
||||
|
Loading…
Reference in New Issue
Block a user