[Python-checkins] 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
martin.v.loewis
python-checkins at python.org
Fri Dec 30 11:16:46 CET 2005
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)
More information about the Python-checkins
mailing list