@@ -349,8 +349,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_pixelbuf_show_obj, pixelbuf_pixelbuf_s
349
349
STATIC mp_obj_t pixelbuf_pixelbuf_fill (mp_obj_t self_in , mp_obj_t value ) {
350
350
pixelbuf_pixelbuf_obj_t * self = native_pixelbuf (self_in );
351
351
352
- for (size_t offset = 0 ; offset < self -> pixels ; offset ++ ) {
353
- pixelbuf_set_pixel (self -> buf + offset , self -> two_buffers ? self -> rawbuf + offset : NULL ,
352
+ for (size_t offset = 0 ; offset < self -> bytes ; offset += self -> pixel_step ) {
353
+ pixelbuf_set_pixel (self -> buf + offset , self -> two_buffers ? ( self -> rawbuf + offset ) : NULL ,
354
354
self -> brightness , value , & self -> byteorder , self -> byteorder .is_dotstar );
355
355
if (self -> auto_write )
356
356
call_show (self_in );
@@ -382,7 +382,7 @@ STATIC mp_obj_t pixelbuf_pixelbuf_subscr(mp_obj_t self_in, mp_obj_t index_in, mp
382
382
} else if (MP_OBJ_IS_TYPE (index_in , & mp_type_slice )) {
383
383
mp_bound_slice_t slice ;
384
384
385
- mp_seq_get_fast_slice_indexes (self -> bytes , index_in , & slice );
385
+ mp_seq_get_fast_slice_indexes (self -> pixels , index_in , & slice );
386
386
387
387
if ((slice .stop * self -> pixel_step ) > self -> bytes )
388
388
mp_raise_IndexError (translate ("Range out of bounds" ));
@@ -399,8 +399,7 @@ STATIC mp_obj_t pixelbuf_pixelbuf_subscr(mp_obj_t self_in, mp_obj_t index_in, mp
399
399
if (!(MP_OBJ_IS_TYPE (value , & mp_type_list ) || MP_OBJ_IS_TYPE (value , & mp_type_tuple )))
400
400
mp_raise_ValueError (translate ("tuple/list required on RHS" ));
401
401
402
- size_t dst_len = (slice .stop - slice .start );
403
- dst_len = (slice .stop - slice .start ) / slice .step ;
402
+ size_t dst_len = (slice .stop - slice .start ) / slice .step ;
404
403
if (slice .step > 1 ) {
405
404
if ((slice .stop - slice .start ) % slice .step )
406
405
dst_len ++ ;
0 commit comments