kopia lustrzana https://github.com/micropython/micropython
extmod/machine_signal: Change VLA to use new scoped allocation API.
rodzic
1e5a33df41
commit
6df7b2f2fe
|
@ -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"
|
// If first argument isn't a Pin-like object, we filter out "invert"
|
||||||
// from keyword arguments and pass them all to the exported Pin
|
// from keyword arguments and pass them all to the exported Pin
|
||||||
// constructor to create one.
|
// 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));
|
memcpy(pin_args, args, n_args * sizeof(mp_obj_t));
|
||||||
const mp_obj_t *src = args + n_args;
|
const mp_obj_t *src = args + n_args;
|
||||||
mp_obj_t *dst = pin_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
|
// will just ignore it as set a concrete type. If not, we'd need
|
||||||
// to expose port's "default" pin type too.
|
// to expose port's "default" pin type too.
|
||||||
pin = MICROPY_PY_MACHINE_PIN_MAKE_NEW(NULL, n_args, n_kw, pin_args);
|
pin = MICROPY_PY_MACHINE_PIN_MAKE_NEW(NULL, n_args, n_kw, pin_args);
|
||||||
|
|
||||||
|
mp_local_free(pin_args);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|
Ładowanie…
Reference in New Issue