Commit de6ff03e authored by Thomas Wouters's avatar Thomas Wouters

Fix variable/format-char discrepancy in new-style class __getitem__,

__delitem__, __setslice__ and __delslice__ hooks. This caused test_weakref
and test_userlist to fail in the p3yk branch (where UserList, like all
classes, is new-style) on amd64 systems, with open-ended slices: the
sys.maxint value for empty-endpoint was transformed into -1.
parent 045c3068
...@@ -4186,10 +4186,10 @@ slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value) ...@@ -4186,10 +4186,10 @@ slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
if (value == NULL) if (value == NULL)
res = call_method(self, "__delitem__", &delitem_str, res = call_method(self, "__delitem__", &delitem_str,
"(i)", index); "(n)", index);
else else
res = call_method(self, "__setitem__", &setitem_str, res = call_method(self, "__setitem__", &setitem_str,
"(iO)", index, value); "(nO)", index, value);
if (res == NULL) if (res == NULL)
return -1; return -1;
Py_DECREF(res); Py_DECREF(res);
...@@ -4204,10 +4204,10 @@ slot_sq_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value) ...@@ -4204,10 +4204,10 @@ slot_sq_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value)
if (value == NULL) if (value == NULL)
res = call_method(self, "__delslice__", &delslice_str, res = call_method(self, "__delslice__", &delslice_str,
"(ii)", i, j); "(nn)", i, j);
else else
res = call_method(self, "__setslice__", &setslice_str, res = call_method(self, "__setslice__", &setslice_str,
"(iiO)", i, j, value); "(nnO)", i, j, value);
if (res == NULL) if (res == NULL)
return -1; return -1;
Py_DECREF(res); Py_DECREF(res);
......
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