Commit 095e43a9 authored by Damien George's avatar Damien George
Browse files

py/sequence: Allow to use bignums as indices in slice objects.

See issue #2264.
parent f6a8e84a
......@@ -56,12 +56,12 @@ bool mp_seq_get_fast_slice_indexes(mp_uint_t len, mp_obj_t slice, mp_bound_slice
if (ostart == mp_const_none) {
start = 0;
} else {
start = MP_OBJ_SMALL_INT_VALUE(ostart);
start = mp_obj_get_int(ostart);
}
if (ostop == mp_const_none) {
stop = len;
} else {
stop = MP_OBJ_SMALL_INT_VALUE(ostop);
stop = mp_obj_get_int(ostop);
}
// Unlike subscription, out-of-bounds slice indexes are never error
......@@ -88,7 +88,7 @@ bool mp_seq_get_fast_slice_indexes(mp_uint_t len, mp_obj_t slice, mp_bound_slice
indexes->stop = stop;
if (ostep != mp_const_none && ostep != MP_OBJ_NEW_SMALL_INT(1)) {
indexes->step = MP_OBJ_SMALL_INT_VALUE(ostep);
indexes->step = mp_obj_get_int(ostep);
return false;
}
indexes->step = 1;
......
# test slicing when arguments are bignums
print(list(range(10))[(1<<66)>>65:])
print(list(range(10))[:(1<<66)>>65])
print(list(range(10))[::(1<<66)>>65])
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment