Commit 32dffaa0 authored by Guido van Rossum's avatar Guido van Rossum

Fix assignment of a list to a slice of itself.

parent 4135e782
......@@ -357,8 +357,17 @@ list_ass_slice(a, ilow, ihigh, v)
#define b ((listobject *)v)
if (v == NULL)
n = 0;
else if (is_listobject(v))
else if (is_listobject(v)) {
n = b->ob_size;
if (a == b) {
/* Special case "a[i:j] = a" -- copy b first */
int ret;
v = list_slice(b, 0, n);
ret = list_ass_slice(a, ilow, ihigh, v);
DECREF(v);
return ret;
}
}
else {
err_badarg();
return -1;
......
Markdown is supported
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