Message 174778 - Python tracker (original) (raw)
New patch that fixes the error message for badly typed slice arguments.
Also tweaks a couple of other details:
replace Py_GE with Py_GT, Py_LE with Py_LT in the out-of-range comparisons, as suggested by Serhiy; this also makes it more closely match the Python reference implementation (since max(x, y) and min(x, y) both return x when x and y are equal)
make sure exception messages match between the Python reference implementation and the C version.
Look at compute_slice_indices() in Objects/rangeobject.c.
Will do. I'm not quite sure I even understand how that code's managing to work at the moment: I see the Py_ssize_t case, but I don't see the fallback code for the case when things are too large for a Py_ssize_t.