@@ -107,7 +107,7 @@ mcu_pin_obj_t *validate_obj_is_free_pin(mp_obj_t obj) {
107
107
108
108
// Validate every element in the list is a unique pin
109
109
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 ));
111
111
112
112
for (size_t pin_cnt = 0 ; pin_cnt < num_pins ; pin_cnt ++ ) {
113
113
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) {
124
124
}
125
125
126
126
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 ));
129
129
130
130
for (size_t pin_cnt_1 = 0 ; pin_cnt_1 < num_pins_1 ; pin_cnt_1 ++ ) {
131
131
mp_obj_t pin1_obj = mp_obj_subscr (seq1 , MP_OBJ_NEW_SMALL_INT (pin_cnt_1 ), MP_OBJ_SENTINEL );
132
132
mcu_pin_obj_t * pin1 = validate_obj_is_pin (pin1_obj );
133
133
134
134
for (size_t pin_cnt_2 = 0 ; pin_cnt_2 < num_pins_2 ; pin_cnt_2 ++ ) {
135
135
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 ) {
137
138
mp_raise_TypeError_varg (translate ("%q and %q contain duplicate objects" ), arg_name1 , arg_name2 );
138
139
}
139
140
}
0 commit comments