@@ -148,21 +148,15 @@ STATIC mp_obj_t bitmap_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t val
148
148
} else {
149
149
mp_obj_t * items ;
150
150
mp_obj_get_array_fixed_n (index_obj , 2 , & items );
151
- x = mp_arg_validate_int_min (mp_obj_get_int (items [0 ]), 0 , MP_QSTR_x );
152
- y = mp_arg_validate_int_min (mp_obj_get_int (items [1 ]), 0 , MP_QSTR_y );
153
- if (x >= common_hal_displayio_bitmap_get_width (self ) || y >= common_hal_displayio_bitmap_get_height (self )) {
154
- mp_raise_IndexError (translate ("pixel coordinates out of bounds" ));
155
- }
151
+ x = mp_arg_validate_int_range (mp_obj_get_int (items [0 ]), 0 , self -> width - 1 , MP_QSTR_x );
152
+ y = mp_arg_validate_int_range (mp_obj_get_int (items [1 ]), 0 , self -> height - 1 , MP_QSTR_y );
156
153
}
157
154
158
155
if (value_obj == MP_OBJ_SENTINEL ) {
159
156
// load
160
157
return MP_OBJ_NEW_SMALL_INT (common_hal_displayio_bitmap_get_pixel (self , x , y ));
161
158
} else {
162
- mp_uint_t value = (mp_uint_t )mp_obj_get_int (value_obj );
163
- if ((value >> common_hal_displayio_bitmap_get_bits_per_value (self )) != 0 ) {
164
- mp_raise_ValueError (translate ("pixel value requires too many bits" ));
165
- }
159
+ mp_uint_t value = (mp_uint_t )mp_arg_validate_int_range (mp_obj_get_int (value_obj ), 0 ,(1u << common_hal_displayio_bitmap_get_bits_per_value (self )) - 1 , MP_QSTR_value );
166
160
common_hal_displayio_bitmap_set_pixel (self , x , y , value );
167
161
}
168
162
return mp_const_none ;
@@ -276,10 +270,7 @@ MP_DEFINE_CONST_FUN_OBJ_KW(displayio_bitmap_blit_obj, 1, displayio_bitmap_obj_bl
276
270
STATIC mp_obj_t displayio_bitmap_obj_fill (mp_obj_t self_in , mp_obj_t value_obj ) {
277
271
displayio_bitmap_t * self = MP_OBJ_TO_PTR (self_in );
278
272
279
- mp_uint_t value = (mp_uint_t )mp_arg_validate_int_min (mp_obj_get_int (value_obj ), 0 , MP_QSTR_value );
280
- if ((value >> common_hal_displayio_bitmap_get_bits_per_value (self )) != 0 ) {
281
- mp_raise_ValueError (translate ("pixel value requires too many bits" ));
282
- }
273
+ mp_uint_t value = (mp_uint_t )mp_arg_validate_int_range (mp_obj_get_int (value_obj ), 0 ,(1u << common_hal_displayio_bitmap_get_bits_per_value (self )) - 1 ,MP_QSTR_value );
283
274
common_hal_displayio_bitmap_fill (self , value );
284
275
285
276
return mp_const_none ;
0 commit comments