summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2000-06-23 19:37:02 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2000-06-23 19:37:02 (GMT)
commitd08b4c4524a31695d7e63768c02f472c9cb54fbd (patch)
treeb81cade431fa30d6446fef0122a3796b0876c8a2 /Include
parentd22162bac7e42ccf90571ee2607c9c42ed2df3fe (diff)
downloadcpython-d08b4c4524a31695d7e63768c02f472c9cb54fbd.zip
cpython-d08b4c4524a31695d7e63768c02f472c9cb54fbd.tar.gz
cpython-d08b4c4524a31695d7e63768c02f472c9cb54fbd.tar.bz2
part 2 of Neil Schemenauer's GC patches:
This patch modifies the type structures of objects that participate in GC. The object's tp_basicsize is increased when GC is enabled. GC information is prefixed to the object to maintain binary compatibility. GC objects also define the tp_flag Py_TPFLAGS_GC.
Diffstat (limited to 'Include')
-rw-r--r--Include/object.h7
-rw-r--r--Include/objimpl.h6
2 files changed, 13 insertions, 0 deletions
diff --git a/Include/object.h b/Include/object.h
index e18e0e8..2250b7f 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -325,6 +325,13 @@ given type object has a specified feature.
/* PySequenceMethods contains sq_contains */
#define Py_TPFLAGS_HAVE_SEQUENCE_IN (1L<<1)
+/* Objects which participate in garbage collection (see objimp.h) */
+#ifdef WITH_CYCLE_GC
+#define Py_TPFLAGS_GC (1L<<2)
+#else
+#define Py_TPFLAGS_GC 0
+#endif
+
#define Py_TPFLAGS_DEFAULT (Py_TPFLAGS_HAVE_GETCHARBUFFER | \
Py_TPFLAGS_HAVE_SEQUENCE_IN)
diff --git a/Include/objimpl.h b/Include/objimpl.h
index 71dbb93..860030f 100644
--- a/Include/objimpl.h
+++ b/Include/objimpl.h
@@ -234,6 +234,12 @@ extern DL_IMPORT(void) _PyObject_Del Py_PROTO((PyObject *));
the 1st step is performed automatically for you, so in a C++ class
constructor you would start directly with PyObject_Init/InitVar. */
+
+
+#ifndef WITH_CYCLE_GC
+#define PyGC_INFO_SIZE 0
+#endif
+
#ifdef __cplusplus
}
#endif