On 22.12.16 12:16, Armin Rigo wrote:
On 21 December 2016 at 15:51, Serhiy Storchaka <storch...@gmail.com> wrote:
The code
if (PySlice_GetIndicesEx(item, length,
&start, &stop, &step, &slicelength) < 0)
return -1;
should be replaced with
if (foo(item, &start, &stop, &step) < 0)
return -1;
slicelength = bar(&start, &stop, step, length);
As far as I can tell, as written, this change would not fix anything.
Shouldn't it be along the following lines instead?
if (foo(item, &start, &stop, &step) < 0)
return -1;
length = PyList_GET_SIZE(mylist); /* <= after foo() */
slicelength = bar(&start, &stop, &step, length);
Yes, the point is that length is not a constant, but a result of an
expression and should be evaluated after calling foo().
step is not changed by bar() and can be passed by value to it.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com