diff options
author | Damien George <damien.p.george@gmail.com> | 2017-11-26 23:38:50 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2017-12-11 13:49:09 +1100 |
commit | 6df7b2f2fee71e231927511d4baf58ff86eb7983 (patch) | |
tree | c658600e2d912ff2fdfb0a84d729d2dec70b5274 | |
parent | 1e5a33df413bbd8a8aa5bd880be445c684fc5506 (diff) |
extmod/machine_signal: Change VLA to use new scoped allocation API.
-rw-r--r-- | extmod/machine_signal.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/extmod/machine_signal.c b/extmod/machine_signal.c index 78d0c3fee..3f9f5af94 100644 --- a/extmod/machine_signal.c +++ b/extmod/machine_signal.c @@ -58,7 +58,7 @@ STATIC mp_obj_t signal_make_new(const mp_obj_type_t *type, size_t n_args, size_t // If first argument isn't a Pin-like object, we filter out "invert" // from keyword arguments and pass them all to the exported Pin // constructor to create one. - mp_obj_t pin_args[n_args + n_kw * 2]; + mp_obj_t *pin_args = mp_local_alloc((n_args + n_kw * 2) * sizeof(mp_obj_t)); memcpy(pin_args, args, n_args * sizeof(mp_obj_t)); const mp_obj_t *src = args + n_args; mp_obj_t *dst = pin_args + n_args; @@ -88,6 +88,8 @@ STATIC mp_obj_t signal_make_new(const mp_obj_type_t *type, size_t n_args, size_t // will just ignore it as set a concrete type. If not, we'd need // to expose port's "default" pin type too. pin = MICROPY_PY_MACHINE_PIN_MAKE_NEW(NULL, n_args, n_kw, pin_args); + + mp_local_free(pin_args); } else #endif |