summaryrefslogtreecommitdiffstats
path: root/Doc/ext/cycle-gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/ext/cycle-gc.c')
-rw-r--r--Doc/ext/cycle-gc.c79
1 files changed, 0 insertions, 79 deletions
diff --git a/Doc/ext/cycle-gc.c b/Doc/ext/cycle-gc.c
deleted file mode 100644
index c3a0caa..0000000
--- a/Doc/ext/cycle-gc.c
+++ /dev/null
@@ -1,79 +0,0 @@
-#include "Python.h"
-
-typedef struct {
- PyObject_HEAD
- PyObject *container;
-} MyObject;
-
-static int
-my_traverse(MyObject *self, visitproc visit, void *arg)
-{
- if (self->container != NULL)
- return visit(self->container, arg);
- else
- return 0;
-}
-
-static int
-my_clear(MyObject *self)
-{
- Py_XDECREF(self->container);
- self->container = NULL;
-
- return 0;
-}
-
-static void
-my_dealloc(MyObject *self)
-{
- PyObject_GC_UnTrack((PyObject *) self);
- Py_XDECREF(self->container);
- PyObject_GC_Del(self);
-}
-
-static PyTypeObject
-MyObject_Type = {
- PyObject_HEAD_INIT(NULL)
- 0,
- "MyObject",
- sizeof(MyObject),
- 0,
- (destructor)my_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_compare */
- 0, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- 0, /* tp_doc */
- (traverseproc)my_traverse, /* tp_traverse */
- (inquiry)my_clear, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
-};
-
-/* This constructor should be made accessible from Python. */
-static PyObject *
-new_object(PyObject *unused, PyObject *args)
-{
- PyObject *container = NULL;
- MyObject *result = NULL;
-
- if (PyArg_ParseTuple(args, "|O:new_object", &container)) {
- result = PyObject_GC_New(MyObject, &MyObject_Type);
- if (result != NULL) {
- result->container = container;
- PyObject_GC_Track(result);
- }
- }
- return (PyObject *) result;
-}