@@ -349,8 +349,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_pixelbuf_show_obj, pixelbuf_pixelbuf_s
349349STATIC mp_obj_t pixelbuf_pixelbuf_fill (mp_obj_t self_in , mp_obj_t value ) {
350350 pixelbuf_pixelbuf_obj_t * self = native_pixelbuf (self_in );
351351
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 ,
354354 self -> brightness , value , & self -> byteorder , self -> byteorder .is_dotstar );
355355 if (self -> auto_write )
356356 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
382382 } else if (MP_OBJ_IS_TYPE (index_in , & mp_type_slice )) {
383383 mp_bound_slice_t slice ;
384384
385- mp_seq_get_fast_slice_indexes (self -> bytes , index_in , & slice );
385+ mp_seq_get_fast_slice_indexes (self -> pixels , index_in , & slice );
386386
387387 if ((slice .stop * self -> pixel_step ) > self -> bytes )
388388 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
399399 if (!(MP_OBJ_IS_TYPE (value , & mp_type_list ) || MP_OBJ_IS_TYPE (value , & mp_type_tuple )))
400400 mp_raise_ValueError (translate ("tuple/list required on RHS" ));
401401
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 ;
404403 if (slice .step > 1 ) {
405404 if ((slice .stop - slice .start ) % slice .step )
406405 dst_len ++ ;
0 commit comments