summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Include/cpython/cellobject.h
diff options
context:
space:
mode:
authorthegeorg <[email protected]>2024-02-19 02:38:52 +0300
committerthegeorg <[email protected]>2024-02-19 02:50:43 +0300
commitd96fa07134c06472bfee6718b5cfd1679196fc99 (patch)
tree31ec344fa9d3ff8dc038692516b6438dfbdb8a2d /contrib/tools/python3/Include/cpython/cellobject.h
parent452cf9e068aef7110e35e654c5d47eb80111ef89 (diff)
Sync contrib/tools/python3 layout with upstream
* Move src/ subdir contents to the top of the layout * Rename self-written lib -> lib2 to avoid CaseFolding warning from the VCS * Regenerate contrib/libs/python proxy-headers accordingly 4ccc62ac1511abcf0fed14ccade38e984e088f1e
Diffstat (limited to 'contrib/tools/python3/Include/cpython/cellobject.h')
-rw-r--r--contrib/tools/python3/Include/cpython/cellobject.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/contrib/tools/python3/Include/cpython/cellobject.h b/contrib/tools/python3/Include/cpython/cellobject.h
new file mode 100644
index 00000000000..47a6a491497
--- /dev/null
+++ b/contrib/tools/python3/Include/cpython/cellobject.h
@@ -0,0 +1,44 @@
+/* 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 */