From e5dc7221765467b49970b2144f8485d91cad6c48 Mon Sep 17 00:00:00 2001 From: gamblor21 Date: Tue, 17 Aug 2021 19:16:26 -0500 Subject: [PATCH] Fix for int type and pin validation --- shared-bindings/microcontroller/Pin.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/shared-bindings/microcontroller/Pin.c b/shared-bindings/microcontroller/Pin.c index 9984669714..d709c669af 100644 --- a/shared-bindings/microcontroller/Pin.c +++ b/shared-bindings/microcontroller/Pin.c @@ -107,7 +107,7 @@ mcu_pin_obj_t *validate_obj_is_free_pin(mp_obj_t obj) { // Validate every element in the list is a unique pin void validate_no_duplicate_pins(mp_obj_t seq, qstr arg_name) { - mp_int_t num_pins = MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq)); + const size_t num_pins = (size_t)MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq)); for (size_t pin_cnt = 0; pin_cnt < num_pins; pin_cnt++) { mp_obj_t pin1_obj = mp_obj_subscr(seq, MP_OBJ_NEW_SMALL_INT(pin_cnt), MP_OBJ_SENTINEL); @@ -124,8 +124,8 @@ void validate_no_duplicate_pins(mp_obj_t seq, qstr arg_name) { } void validate_no_duplicate_pins_2(mp_obj_t seq1, mp_obj_t seq2, qstr arg_name1, qstr arg_name2) { - const size_t num_pins_1 = MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq1)); - const size_t num_pins_2 = MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq2)); + const size_t num_pins_1 = (size_t)MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq1)); + const size_t num_pins_2 = (size_t)MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq2)); for (size_t pin_cnt_1 = 0; pin_cnt_1 < num_pins_1; pin_cnt_1++) { mp_obj_t pin1_obj = mp_obj_subscr(seq1, MP_OBJ_NEW_SMALL_INT(pin_cnt_1), MP_OBJ_SENTINEL); @@ -133,7 +133,8 @@ void validate_no_duplicate_pins_2(mp_obj_t seq1, mp_obj_t seq2, qstr arg_name1, for (size_t pin_cnt_2 = 0; pin_cnt_2 < num_pins_2; pin_cnt_2++) { mp_obj_t pin2_obj = mp_obj_subscr(seq2, MP_OBJ_NEW_SMALL_INT(pin_cnt_2), MP_OBJ_SENTINEL); - if (pin1_obj == pin2_obj) { + mcu_pin_obj_t *pin2 = validate_obj_is_pin(pin2_obj); + if (pin1 == pin2) { mp_raise_TypeError_varg(translate("%q and %q contain duplicate objects"), arg_name1, arg_name2); } }