py: Refactor slice helpers, preparing to support arbitrary slicing.
This commit is contained in:
@@ -163,12 +163,12 @@ mp_obj_t mp_obj_tuple_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
mp_obj_tuple_t *self = self_in;
|
||||
#if MICROPY_PY_SLICE
|
||||
if (MP_OBJ_IS_TYPE(index, &mp_type_slice)) {
|
||||
machine_uint_t start, stop;
|
||||
if (!mp_seq_get_fast_slice_indexes(self->len, index, &start, &stop)) {
|
||||
mp_bound_slice_t slice;
|
||||
if (!mp_seq_get_fast_slice_indexes(self->len, index, &slice)) {
|
||||
assert(0);
|
||||
}
|
||||
mp_obj_tuple_t *res = mp_obj_new_tuple(stop - start, NULL);
|
||||
mp_seq_copy(res->items, self->items + start, res->len, mp_obj_t);
|
||||
mp_obj_tuple_t *res = mp_obj_new_tuple(slice.stop - slice.start, NULL);
|
||||
mp_seq_copy(res->items, self->items + slice.start, res->len, mp_obj_t);
|
||||
return res;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user