diff options
author | Christian Heimes <christian@cheimes.de> | 2007-11-29 22:35:39 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2007-11-29 22:35:39 (GMT) |
commit | a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0 (patch) | |
tree | 8f865b488f65ff8bab485bafe1cdd8516a65c679 /Include | |
parent | 513b2ac76c1f56f5a6e0d07fee57d823819ee873 (diff) | |
download | cpython-a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0.zip cpython-a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0.tar.gz cpython-a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0.tar.bz2 |
Added all PyTypeObjects to the appropriate header files.
Before the patch a lot of internal types weren't available in the header files. The patch exposes the new iterators, views and some other types to all C modules. I've also renamed some of the types and tp_names.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/bytesobject.h | 1 | ||||
-rw-r--r-- | Include/descrobject.h | 5 | ||||
-rw-r--r-- | Include/dictobject.h | 13 | ||||
-rw-r--r-- | Include/iterobject.h | 4 | ||||
-rw-r--r-- | Include/listobject.h | 3 | ||||
-rw-r--r-- | Include/rangeobject.h | 2 | ||||
-rw-r--r-- | Include/setobject.h | 1 | ||||
-rw-r--r-- | Include/stringobject.h | 1 | ||||
-rw-r--r-- | Include/tupleobject.h | 1 | ||||
-rw-r--r-- | Include/unicodeobject.h | 1 |
10 files changed, 31 insertions, 1 deletions
diff --git a/Include/bytesobject.h b/Include/bytesobject.h index 4d9c53f..e9c319c 100644 --- a/Include/bytesobject.h +++ b/Include/bytesobject.h @@ -29,6 +29,7 @@ typedef struct { /* Type object */ PyAPI_DATA(PyTypeObject) PyBytes_Type; +PyAPI_DATA(PyTypeObject) PyBytesIter_Type; /* Type check macros */ #define PyBytes_Check(self) PyObject_TypeCheck(self, &PyBytes_Type) diff --git a/Include/descrobject.h b/Include/descrobject.h index a45a801..badfa5b 100644 --- a/Include/descrobject.h +++ b/Include/descrobject.h @@ -67,7 +67,12 @@ typedef struct { void *d_wrapped; /* This can be any function pointer */ } PyWrapperDescrObject; +PyAPI_DATA(PyTypeObject) PyClassMethodDescr_Type; +PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type; +PyAPI_DATA(PyTypeObject) PyMemberDescr_Type; +PyAPI_DATA(PyTypeObject) PyMethodDescr_Type; PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type; +PyAPI_DATA(PyTypeObject) PyDictProxy_Type; PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *); PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *); diff --git a/Include/dictobject.h b/Include/dictobject.h index fec6295..0d8a09b 100644 --- a/Include/dictobject.h +++ b/Include/dictobject.h @@ -89,10 +89,23 @@ struct _dictobject { }; PyAPI_DATA(PyTypeObject) PyDict_Type; +PyAPI_DATA(PyTypeObject) PyDictIterKey_Type; +PyAPI_DATA(PyTypeObject) PyDictIterValue_Type; +PyAPI_DATA(PyTypeObject) PyDictIterItem_Type; +PyAPI_DATA(PyTypeObject) PyDictKeys_Type; +PyAPI_DATA(PyTypeObject) PyDictItems_Type; +PyAPI_DATA(PyTypeObject) PyDictValues_Type; #define PyDict_Check(op) \ PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_DICT_SUBCLASS) #define PyDict_CheckExact(op) (Py_Type(op) == &PyDict_Type) +#define PyDictKeys_Check(op) (Py_Type(op) == &PyDictKeys_Type) +#define PyDictItems_Check(op) (Py_Type(op) == &PyDictItems_Type) +#define PyDictValues_Check(op) (Py_Type(op) == &PyDictValues_Type) +/* This excludes Values, since they are not sets. */ +# define PyDictViewSet_Check(op) \ + (PyDictKeys_Check(op) || PyDictItems_Check(op)) + PyAPI_FUNC(PyObject *) PyDict_New(void); PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key); diff --git a/Include/iterobject.h b/Include/iterobject.h index 12853b4..ba1b482 100644 --- a/Include/iterobject.h +++ b/Include/iterobject.h @@ -6,12 +6,14 @@ extern "C" { #endif PyAPI_DATA(PyTypeObject) PySeqIter_Type; +PyAPI_DATA(PyTypeObject) PyCallIter_Type; +PyAPI_DATA(PyTypeObject) PyZipIter_Type; +PyAPI_DATA(PyTypeObject) PyCmpWrapper_Type; #define PySeqIter_Check(op) (Py_Type(op) == &PySeqIter_Type) PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *); -PyAPI_DATA(PyTypeObject) PyCallIter_Type; #define PyCallIter_Check(op) (Py_Type(op) == &PyCallIter_Type) diff --git a/Include/listobject.h b/Include/listobject.h index e8b192a..d395889 100644 --- a/Include/listobject.h +++ b/Include/listobject.h @@ -39,6 +39,9 @@ typedef struct { } PyListObject; PyAPI_DATA(PyTypeObject) PyList_Type; +PyAPI_DATA(PyTypeObject) PyListIter_Type; +PyAPI_DATA(PyTypeObject) PyListRevIter_Type; +PyAPI_DATA(PyTypeObject) PySortWrapper_Type; #define PyList_Check(op) \ PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_LIST_SUBCLASS) diff --git a/Include/rangeobject.h b/Include/rangeobject.h index 2403807..2746454 100644 --- a/Include/rangeobject.h +++ b/Include/rangeobject.h @@ -16,6 +16,8 @@ they are represented by a start, stop, and step datamembers. */ PyAPI_DATA(PyTypeObject) PyRange_Type; +PyAPI_DATA(PyTypeObject) PyRangeIter_Type; +PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type; #define PyRange_Check(op) (Py_Type(op) == &PyRange_Type) diff --git a/Include/setobject.h b/Include/setobject.h index 8914749..5b97fcb 100644 --- a/Include/setobject.h +++ b/Include/setobject.h @@ -58,6 +58,7 @@ struct _setobject { PyAPI_DATA(PyTypeObject) PySet_Type; PyAPI_DATA(PyTypeObject) PyFrozenSet_Type; +PyAPI_DATA(PyTypeObject) PySetIter_Type; /* Invariants for frozensets: * data is immutable. diff --git a/Include/stringobject.h b/Include/stringobject.h index 8241f1e..184bcdd 100644 --- a/Include/stringobject.h +++ b/Include/stringobject.h @@ -40,6 +40,7 @@ typedef struct { } PyStringObject; PyAPI_DATA(PyTypeObject) PyString_Type; +PyAPI_DATA(PyTypeObject) PyStringIter_Type; #define PyString_Check(op) \ PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_STRING_SUBCLASS) diff --git a/Include/tupleobject.h b/Include/tupleobject.h index 423103a..7e9cdb5 100644 --- a/Include/tupleobject.h +++ b/Include/tupleobject.h @@ -32,6 +32,7 @@ typedef struct { } PyTupleObject; PyAPI_DATA(PyTypeObject) PyTuple_Type; +PyAPI_DATA(PyTypeObject) PyTupleIter_Type; #define PyTuple_Check(op) \ PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_TUPLE_SUBCLASS) diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index f3c37fe..4e94f76 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -417,6 +417,7 @@ typedef struct { } PyUnicodeObject; PyAPI_DATA(PyTypeObject) PyUnicode_Type; +PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; #define SSTATE_NOT_INTERNED 0 #define SSTATE_INTERNED_MORTAL 1 |