py/objrange: Fix slicing of range when step of slice is negative.

This commit is contained in:
Damien George 2017-05-18 10:33:23 +10:00
parent e1b0f2a16f
commit 03659c51ca
1 changed files with 4 additions and 0 deletions

View File

@ -154,6 +154,10 @@ STATIC mp_obj_t range_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
o->start = self->start + slice.start * self->step;
o->stop = self->start + slice.stop * self->step;
o->step = slice.step * self->step;
if (slice.step < 0) {
// Negative slice steps have inclusive stop, so adjust for exclusive
o->stop -= self->step;
}
return MP_OBJ_FROM_PTR(o);
}
#endif