summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lemburg <mal@egenix.com>2000-07-17 09:22:55 (GMT)
committerMarc-André Lemburg <mal@egenix.com>2000-07-17 09:22:55 (GMT)
commitcf5f3587849e6fbdc68dc91bd3182625f616f2a0 (patch)
treedf751c239b30c82a159d31b30ad7785c765614b2
parentaf36a3aa2046dc14af5c3b5e77390ccb5c44f3f1 (diff)
downloadcpython-cf5f3587849e6fbdc68dc91bd3182625f616f2a0.zip
cpython-cf5f3587849e6fbdc68dc91bd3182625f616f2a0.tar.gz
cpython-cf5f3587849e6fbdc68dc91bd3182625f616f2a0.tar.bz2
Restore PyXXX_Length() APIs for binary compatibility.
New code will see the macros and therefore use the PyXXX_Size() APIs instead. By Thomas Wouters.
-rw-r--r--Include/abstract.h24
-rw-r--r--Objects/abstract.c24
2 files changed, 42 insertions, 6 deletions
diff --git a/Include/abstract.h b/Include/abstract.h
index b765c4b..7a6b7cf 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -383,8 +383,6 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
DL_IMPORT(int) PyObject_Size(PyObject *o);
-#define PyObject_Length PyObject_Size
-
/*
Return the size of object o. If the object, o, provides
both sequence and mapping protocols, the sequence size is
@@ -393,6 +391,12 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
*/
+ /* For DLL compatibility */
+#undef PyObject_Length
+ DL_IMPORT(int) PyObject_Length(PyObject *o);
+#define PyObject_Length PyObject_Size
+
+
DL_IMPORT(PyObject *) PyObject_GetItem(PyObject *o, PyObject *key);
/*
@@ -685,13 +689,17 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
DL_IMPORT(int) PySequence_Size(PyObject *o);
-#define PySequence_Length PySequence_Size
-
/*
Return the size of sequence object o, or -1 on failure.
*/
+ /* For DLL compatibility */
+#undef PySequence_Length
+ DL_IMPORT(int) PySequence_Length(PyObject *o);
+#define PySequence_Length PySequence_Size
+
+
DL_IMPORT(PyObject *) PySequence_Concat(PyObject *o1, PyObject *o2);
/*
@@ -839,14 +847,18 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
DL_IMPORT(int) PyMapping_Size(PyObject *o);
-#define PyMapping_Length PyMapping_Size
-
/*
Returns the number of keys in object o on success, and -1 on
failure. For objects that do not provide sequence protocol,
this is equivalent to the Python expression: len(o).
*/
+ /* For DLL compatibility */
+#undef PyMapping_Length
+ DL_IMPORT(int) PyMapping_Length(PyObject *o);
+#define PyMapping_Length PyMapping_Size
+
+
/* implemented as a macro:
int PyMapping_DelItemString(PyObject *o, char *key);
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 2c7c307..1d99019 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -78,6 +78,14 @@ PyObject_Size(PyObject *o)
return PyMapping_Size(o);
}
+#undef PyObject_Length
+int
+PyObject_Length(PyObject *o)
+{
+ return PyObject_Size(o);
+}
+#define PyObject_Length PyObject_Size
+
PyObject *
PyObject_GetItem(PyObject *o, PyObject *key)
{
@@ -820,6 +828,14 @@ PySequence_Size(PyObject *s)
return -1;
}
+#undef PySequence_Length
+int
+PySequence_Length(PyObject *s)
+{
+ return PySequence_Size(s);
+}
+#define PySequence_Length PySequence_Size
+
PyObject *
PySequence_Concat(PyObject *s, PyObject *o)
{
@@ -1278,6 +1294,14 @@ PyMapping_Size(PyObject *o)
return -1;
}
+#undef PyMapping_Length
+int
+PyMapping_Length(PyObject *o)
+{
+ return PyMapping_Size(o);
+}
+#define PyMapping_Length PyMapping_Size
+
PyObject *
PyMapping_GetItemString(PyObject *o, char *key)
{