Skip to content

Commit fc21b30

Browse files
committed
Make rotaryio object long-lived
1 parent 0b2528b commit fc21b30

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

shared-bindings/rotaryio/IncrementalEncoder.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ STATIC mp_obj_t rotaryio_incrementalencoder_make_new(const mp_obj_type_t *type,
7474
const mcu_pin_obj_t *pin_a = validate_obj_is_free_pin(args[ARG_pin_a].u_obj);
7575
const mcu_pin_obj_t *pin_b = validate_obj_is_free_pin(args[ARG_pin_b].u_obj);
7676

77-
rotaryio_incrementalencoder_obj_t *self = m_new_obj(rotaryio_incrementalencoder_obj_t);
77+
// Make long-lived because some implementations use a pointer to the object as interrupt-handler data.
78+
rotaryio_incrementalencoder_obj_t *self = m_new_ll_obj(rotaryio_incrementalencoder_obj_t);
7879
self->base.type = &rotaryio_incrementalencoder_type;
7980

8081
common_hal_rotaryio_incrementalencoder_construct(self, pin_a, pin_b);

0 commit comments

Comments
 (0)