summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/objstr.c3
-rw-r--r--py/sequence.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/py/objstr.c b/py/objstr.c
index 67de2ce804..4ec1034e1e 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -355,9 +355,6 @@ STATIC mp_obj_t str_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
if (!mp_seq_get_fast_slice_indexes(self_len, index, &start, &stop)) {
assert(0);
}
- if (start >= stop) {
- return MP_OBJ_NEW_QSTR(MP_QSTR_);
- }
return str_new(type, self_data + start, stop - start);
}
#endif
diff --git a/py/sequence.c b/py/sequence.c
index 2c1f6a836c..0a4bb26b31 100644
--- a/py/sequence.c
+++ b/py/sequence.c
@@ -88,6 +88,12 @@ bool mp_seq_get_fast_slice_indexes(machine_uint_t len, mp_obj_t slice, machine_u
} else if (stop > len) {
stop = len;
}
+
+ // CPython returns empty sequence in such case, or point for assignment is at start
+ if (start > stop) {
+ stop = start;
+ }
+
*begin = start;
*end = stop;
return true;