1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /* Cell object interface */
- #ifndef Py_LIMITED_API
- #ifndef Py_CELLOBJECT_H
- #define Py_CELLOBJECT_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct {
- PyObject_HEAD
- /* Content of the cell or NULL when empty */
- PyObject *ob_ref;
- } PyCellObject;
- PyAPI_DATA(PyTypeObject) PyCell_Type;
- #define PyCell_Check(op) Py_IS_TYPE((op), &PyCell_Type)
- PyAPI_FUNC(PyObject *) PyCell_New(PyObject *);
- PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *);
- PyAPI_FUNC(int) PyCell_Set(PyObject *, PyObject *);
- static inline PyObject* PyCell_GET(PyObject *op) {
- PyCellObject *cell;
- assert(PyCell_Check(op));
- cell = _Py_CAST(PyCellObject*, op);
- return cell->ob_ref;
- }
- #define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op))
- static inline void PyCell_SET(PyObject *op, PyObject *value) {
- PyCellObject *cell;
- assert(PyCell_Check(op));
- cell = _Py_CAST(PyCellObject*, op);
- cell->ob_ref = value;
- }
- #define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value))
- #ifdef __cplusplus
- }
- #endif
- #endif /* !Py_TUPLEOBJECT_H */
- #endif /* Py_LIMITED_API */
|