Skip to content

Commit dd7ac68

Browse files
committed
fix slice anf fill bugs
1 parent 0d267ea commit dd7ac68

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

shared-bindings/_pixelbuf/PixelBuf.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_pixelbuf_show_obj, pixelbuf_pixelbuf_s
349349
STATIC 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

Comments
 (0)