commit of r41851 - in python/branches/ssize_t: Include/longobject.h Objects/intobject.c Objects/listobject.c Objects/longobject.c Objects/stringobject.c Objects/tupleobject.c Objects/unicodeobject.c
Author: martin.v.loewis Date: Fri Dec 30 11:16:44 2005 New Revision: 41851 Modified: python/branches/ssize_t/Include/longobject.h python/branches/ssize_t/Objects/intobject.c python/branches/ssize_t/Objects/listobject.c python/branches/ssize_t/Objects/longobject.c python/branches/ssize_t/Objects/stringobject.c python/branches/ssize_t/Objects/tupleobject.c python/branches/ssize_t/Objects/unicodeobject.c Log: Remove PyLong_AsSsize_t. Modified: python/branches/ssize_t/Include/longobject.h ============================================================================== --- python/branches/ssize_t/Include/longobject.h (original) +++ python/branches/ssize_t/Include/longobject.h Fri Dec 30 11:16:44 2005 @@ -18,11 +18,11 @@ PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long); PyAPI_FUNC(PyObject *) PyLong_FromDouble(double); PyAPI_FUNC(long) PyLong_AsLong(PyObject *); -PyAPI_FUNC(Py_ssize_t) PyLong_AsSsize_t(PyObject *); PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLong(PyObject *); PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLongMask(PyObject *); /* For use by intobject.c only */ +PyAPI_FUNC(Py_ssize_t) _PyLong_AsSsize_t(PyObject *); PyAPI_FUNC(PyObject *) _PyLong_FromSize_t(size_t); PyAPI_FUNC(PyObject *) _PyLong_FromSsize_t(Py_ssize_t); Modified: python/branches/ssize_t/Objects/intobject.c ============================================================================== --- python/branches/ssize_t/Objects/intobject.c (original) +++ python/branches/ssize_t/Objects/intobject.c Fri Dec 30 11:16:44 2005 @@ -188,6 +188,8 @@ Py_ssize_t PyInt_AsSsize_t(register PyObject *op) { + if (op && !PyInt_CheckExact(op) && PyLong_Check(op)) + return _PyLong_AsSsize_t(op); #if SIZEOF_SIZE_T==SIZEOF_LONG return PyInt_AsLong(op); #else Modified: python/branches/ssize_t/Objects/listobject.c ============================================================================== --- python/branches/ssize_t/Objects/listobject.c (original) +++ python/branches/ssize_t/Objects/listobject.c Fri Dec 30 11:16:44 2005 @@ -2453,14 +2453,8 @@ static PyObject * list_subscript(PyListObject* self, PyObject* item) { - if (PyInt_Check(item)) { - long i = PyInt_AS_LONG(item); - if (i < 0) - i += PyList_GET_SIZE(self); - return list_item(self, i); - } - else if (PyLong_Check(item)) { - Py_ssize_t i = PyLong_AsSsize_t(item); + if (PyInt_Check(item) || PyLong_Check(item)) { + Py_ssize_t i = PyInt_AsSsize_t(item); if (i == -1 && PyErr_Occurred()) return NULL; if (i < 0) Modified: python/branches/ssize_t/Objects/longobject.c ============================================================================== --- python/branches/ssize_t/Objects/longobject.c (original) +++ python/branches/ssize_t/Objects/longobject.c Fri Dec 30 11:16:44 2005 @@ -245,7 +245,7 @@ Returns -1 and sets an error condition if overflow occurs. */ Py_ssize_t -PyLong_AsSsize_t(PyObject *vv) +_PyLong_AsSsize_t(PyObject *vv) { register PyLongObject *v; size_t x, prev; @@ -253,8 +253,6 @@ int sign; if (vv == NULL || !PyLong_Check(vv)) { - if (vv != NULL && PyInt_Check(vv)) - return PyInt_AsSsize_t(vv); PyErr_BadInternalCall(); return -1; } Modified: python/branches/ssize_t/Objects/stringobject.c ============================================================================== --- python/branches/ssize_t/Objects/stringobject.c (original) +++ python/branches/ssize_t/Objects/stringobject.c Fri Dec 30 11:16:44 2005 @@ -1169,14 +1169,8 @@ static PyObject* string_subscript(PyStringObject* self, PyObject* item) { - if (PyInt_Check(item)) { - long i = PyInt_AS_LONG(item); - if (i < 0) - i += PyString_GET_SIZE(self); - return string_item(self,i); - } - else if (PyLong_Check(item)) { - Py_ssize_t i = PyLong_AsSsize_t(item); + if (PyInt_Check(item) || PyLong_Check(item)) { + Py_ssize_t i = PyInt_AsSsize_t(item); if (i == -1 && PyErr_Occurred()) return NULL; if (i < 0) Modified: python/branches/ssize_t/Objects/tupleobject.c ============================================================================== --- python/branches/ssize_t/Objects/tupleobject.c (original) +++ python/branches/ssize_t/Objects/tupleobject.c Fri Dec 30 11:16:44 2005 @@ -585,14 +585,8 @@ static PyObject* tuplesubscript(PyTupleObject* self, PyObject* item) { - if (PyInt_Check(item)) { - long i = PyInt_AS_LONG(item); - if (i < 0) - i += PyTuple_GET_SIZE(self); - return tupleitem(self, i); - } - else if (PyLong_Check(item)) { - Py_ssize_t i = PyLong_AsSsize_t(item); + if (PyInt_Check(item) || PyLong_Check(item)) { + Py_ssize_t i = PyInt_AsSsize_t(item); if (i == -1 && PyErr_Occurred()) return NULL; if (i < 0) Modified: python/branches/ssize_t/Objects/unicodeobject.c ============================================================================== --- python/branches/ssize_t/Objects/unicodeobject.c (original) +++ python/branches/ssize_t/Objects/unicodeobject.c Fri Dec 30 11:16:44 2005 @@ -6465,13 +6465,8 @@ static PyObject* unicode_subscript(PyUnicodeObject* self, PyObject* item) { - if (PyInt_Check(item)) { - long i = PyInt_AS_LONG(item); - if (i < 0) - i += PyString_GET_SIZE(self); - return unicode_getitem(self, i); - } else if (PyLong_Check(item)) { - Py_ssize_t i = PyLong_AsSsize_t(item); + if (PyInt_Check(item) || PyLong_Check(item)) { + Py_ssize_t i = PyInt_AsSsize_t(item); if (i == -1 && PyErr_Occurred()) return NULL; if (i < 0)
participants (1)
-
martin.v.loewis