diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-01-25 20:04:14 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-01-25 20:04:14 (GMT) |
commit | fbd849f201a4a8c17745a72eb9f0ee3bae34d330 (patch) | |
tree | 3ea7508cfd2675d561cdf1d4dcd4ed2f7d28263a /Include/cellobject.h | |
parent | c34a5ade0af202ce1e19a2b91ef4dcfb8b220adf (diff) | |
download | cpython-fbd849f201a4a8c17745a72eb9f0ee3bae34d330.zip cpython-fbd849f201a4a8c17745a72eb9f0ee3bae34d330.tar.gz cpython-fbd849f201a4a8c17745a72eb9f0ee3bae34d330.tar.bz2 |
PEP 227 implementation
A cell contains a reference to a single PyObject. It could be
implemented as a mutable, one-element sequence, but the separate type
has less overhead.
Diffstat (limited to 'Include/cellobject.h')
-rw-r--r-- | Include/cellobject.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Include/cellobject.h b/Include/cellobject.h new file mode 100644 index 0000000..cc4a159 --- /dev/null +++ b/Include/cellobject.h @@ -0,0 +1,28 @@ +/* Cell object interface */ + +#ifndef Py_CELLOBJECT_H +#define Py_CELLOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + PyObject_VAR_HEAD + PyObject *ob_ref; +} PyCellObject; + +extern DL_IMPORT(PyTypeObject) PyCell_Type; + +#define PyCell_Check(op) ((op)->ob_type == &PyCell_Type) + +extern DL_IMPORT(PyObject *) PyCell_New(PyObject *); +extern DL_IMPORT(PyObject *) PyCell_Get(PyObject *); +extern DL_IMPORT(int) PyCell_Set(PyObject *, PyObject *); + +#define PyCell_GET(op) (((PyCellObject *)(op))->ob_ref) +#define PyCell_SET(op, v) (((PyCellObject *)(op))->ob_ref = v) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TUPLEOBJECT_H */ |