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.
This commit is contained in:
parent
64ed043c9a
commit
4e908107b0
|
@ -4186,10 +4186,10 @@ slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
|
|||
|
||||
if (value == NULL)
|
||||
res = call_method(self, "__delitem__", &delitem_str,
|
||||
"(i)", index);
|
||||
"(n)", index);
|
||||
else
|
||||
res = call_method(self, "__setitem__", &setitem_str,
|
||||
"(iO)", index, value);
|
||||
"(nO)", index, value);
|
||||
if (res == NULL)
|
||||
return -1;
|
||||
Py_DECREF(res);
|
||||
|
@ -4204,10 +4204,10 @@ slot_sq_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value)
|
|||
|
||||
if (value == NULL)
|
||||
res = call_method(self, "__delslice__", &delslice_str,
|
||||
"(ii)", i, j);
|
||||
"(nn)", i, j);
|
||||
else
|
||||
res = call_method(self, "__setslice__", &setslice_str,
|
||||
"(iiO)", i, j, value);
|
||||
"(nnO)", i, j, value);
|
||||
if (res == NULL)
|
||||
return -1;
|
||||
Py_DECREF(res);
|
||||
|
|
Loading…
Reference in New Issue