diff options
author | Damien George <damien.p.george@gmail.com> | 2019-04-26 14:47:31 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2019-04-26 14:47:31 +1000 |
commit | 775ffdcc3b85178ac128f774a5a8f992fd637dca (patch) | |
tree | 63d871155add976711cb8e42c5f01c7b2ea5cd51 /extmod/machine_signal.c | |
parent | f66c4cbfa6801e154e9f4bd54b8b89a44814af37 (diff) | |
download | micropython-775ffdcc3b85178ac128f774a5a8f992fd637dca.tar.gz micropython-775ffdcc3b85178ac128f774a5a8f992fd637dca.zip |
extmod/machine_signal: Fix fault when no args are passed to Signal().
Diffstat (limited to 'extmod/machine_signal.c')
-rw-r--r-- | extmod/machine_signal.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/extmod/machine_signal.c b/extmod/machine_signal.c index c494490b60..8204ef174a 100644 --- a/extmod/machine_signal.c +++ b/extmod/machine_signal.c @@ -43,13 +43,13 @@ typedef struct _machine_signal_t { } machine_signal_t; STATIC mp_obj_t signal_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { - mp_obj_t pin = args[0]; + mp_obj_t pin; bool invert = false; #if defined(MICROPY_PY_MACHINE_PIN_MAKE_NEW) mp_pin_p_t *pin_p = NULL; - if (mp_obj_is_obj(pin)) { + if (n_args > 0 && mp_obj_is_obj(args[0])) { mp_obj_base_t *pin_base = (mp_obj_base_t*)MP_OBJ_TO_PTR(args[0]); pin_p = (mp_pin_p_t*)pin_base->type->protocol; } @@ -96,6 +96,7 @@ STATIC mp_obj_t signal_make_new(const mp_obj_type_t *type, size_t n_args, size_t // Otherwise there should be 1 or 2 args { if (n_args == 1) { + pin = args[0]; if (n_kw == 0) { } else if (n_kw == 1 && args[1] == MP_OBJ_NEW_QSTR(MP_QSTR_invert)) { invert = mp_obj_is_true(args[2]); |