]> granicus.if.org Git - python/commitdiff
Fix variable/format-char discrepancy in new-style class __getitem__,
authorThomas Wouters <thomas@python.org>
Fri, 21 Apr 2006 11:26:56 +0000 (11:26 +0000)
committerThomas Wouters <thomas@python.org>
Fri, 21 Apr 2006 11:26:56 +0000 (11:26 +0000)
__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.

Objects/typeobject.c

index 8d2bf8cbb377d1fb7ff709efda8d056957b32b19..0905d19e9e54a18fdf530ebc7bfcb5d0e281e3ee 100644 (file)
@@ -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);