Skip to content

Commit e5dc722

Browse files
committed
Fix for int type and pin validation
1 parent 168ed35 commit e5dc722

File tree

1 file changed

+5
-4
lines changed
  • shared-bindings/microcontroller

1 file changed

+5
-4
lines changed

shared-bindings/microcontroller/Pin.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ mcu_pin_obj_t *validate_obj_is_free_pin(mp_obj_t obj) {
107107

108108
// Validate every element in the list is a unique pin
109109
void validate_no_duplicate_pins(mp_obj_t seq, qstr arg_name) {
110-
mp_int_t num_pins = MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq));
110+
const size_t num_pins = (size_t)MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq));
111111

112112
for (size_t pin_cnt = 0; pin_cnt < num_pins; pin_cnt++) {
113113
mp_obj_t pin1_obj = mp_obj_subscr(seq, MP_OBJ_NEW_SMALL_INT(pin_cnt), MP_OBJ_SENTINEL);
@@ -124,16 +124,17 @@ void validate_no_duplicate_pins(mp_obj_t seq, qstr arg_name) {
124124
}
125125

126126
void validate_no_duplicate_pins_2(mp_obj_t seq1, mp_obj_t seq2, qstr arg_name1, qstr arg_name2) {
127-
const size_t num_pins_1 = MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq1));
128-
const size_t num_pins_2 = MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq2));
127+
const size_t num_pins_1 = (size_t)MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq1));
128+
const size_t num_pins_2 = (size_t)MP_OBJ_SMALL_INT_VALUE(mp_obj_len(seq2));
129129

130130
for (size_t pin_cnt_1 = 0; pin_cnt_1 < num_pins_1; pin_cnt_1++) {
131131
mp_obj_t pin1_obj = mp_obj_subscr(seq1, MP_OBJ_NEW_SMALL_INT(pin_cnt_1), MP_OBJ_SENTINEL);
132132
mcu_pin_obj_t *pin1 = validate_obj_is_pin(pin1_obj);
133133

134134
for (size_t pin_cnt_2 = 0; pin_cnt_2 < num_pins_2; pin_cnt_2++) {
135135
mp_obj_t pin2_obj = mp_obj_subscr(seq2, MP_OBJ_NEW_SMALL_INT(pin_cnt_2), MP_OBJ_SENTINEL);
136-
if (pin1_obj == pin2_obj) {
136+
mcu_pin_obj_t *pin2 = validate_obj_is_pin(pin2_obj);
137+
if (pin1 == pin2) {
137138
mp_raise_TypeError_varg(translate("%q and %q contain duplicate objects"), arg_name1, arg_name2);
138139
}
139140
}

0 commit comments

Comments
 (0)