diff options
author | Damien George <damien.p.george@gmail.com> | 2016-04-10 12:37:59 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2016-04-10 12:37:59 +0100 |
commit | 657aef66ff3cc308155ea1519ae0c701b326033a (patch) | |
tree | 1dfd1c70e372d73a34ced841081f7701e132a58e | |
parent | 6e87aeb8419e8c5fe009577a3b1bb18254a35b79 (diff) | |
download | micropython-657aef66ff3cc308155ea1519ae0c701b326033a.tar.gz micropython-657aef66ff3cc308155ea1519ae0c701b326033a.zip |
py/stream: Simplify arg extraction logic for stream_ioctl.
Saves 16 bytes of code.
Also, use mp_obj_get_int_truncated to allow integers as big as a machine
word to be passed as the value.
-rw-r--r-- | py/stream.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/py/stream.c b/py/stream.c index 0fb57118c6..9bd086558f 100644 --- a/py/stream.c +++ b/py/stream.c @@ -416,11 +416,10 @@ STATIC mp_obj_t stream_ioctl(size_t n_args, const mp_obj_t *args) { mp_buffer_info_t bufinfo; uintptr_t val = 0; if (n_args > 2) { - if (MP_OBJ_IS_INT(args[2])) { - val = mp_obj_get_int(args[2]); - } else { - mp_get_buffer_raise(args[2], &bufinfo, MP_BUFFER_WRITE); + if (mp_get_buffer(args[2], &bufinfo, MP_BUFFER_WRITE)) { val = (uintptr_t)bufinfo.buf; + } else { + val = mp_obj_get_int_truncated(args[2]); } } |