[Python-checkins] python/dist/src/Modules collectionsmodule.c, 1.15, 1.16

Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv735/Modules Modified Files: collectionsmodule.c Log Message: Make sets and deques weak referencable. Index: collectionsmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/collectionsmodule.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** collectionsmodule.c 18 May 2004 18:15:03 -0000 1.15 --- collectionsmodule.c 30 May 2004 07:26:46 -0000 1.16 *************** *** 1,3 **** --- 1,4 ---- #include "Python.h" + #include "structmember.h" /* collections module implementation of a deque() datatype *************** *** 33,36 **** --- 34,38 ---- int rightindex; int len; + PyObject *weakreflist; /* List of weak references */ } dequeobject; *************** *** 59,62 **** --- 61,65 ---- deque->rightindex = BLOCKLEN / 2; deque->len = 0; + deque->weakreflist = NULL; return (PyObject *)deque; *************** *** 440,443 **** --- 443,448 ---- { PyObject_GC_UnTrack(deque); + if (deque->weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) deque); if (deque->leftblock != NULL) { int err = deque_clear(deque); *************** *** 745,754 **** 0, /* tp_setattro */ 0, /* tp_as_buffer */ ! Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* tp_flags */ deque_doc, /* tp_doc */ (traverseproc)deque_traverse, /* tp_traverse */ (inquiry)deque_clear, /* tp_clear */ (richcmpfunc)deque_richcompare, /* tp_richcompare */ ! 0, /* tp_weaklistoffset*/ (getiterfunc)deque_iter, /* tp_iter */ 0, /* tp_iternext */ --- 750,760 ---- 0, /* tp_setattro */ 0, /* tp_as_buffer */ ! Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | ! Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */ deque_doc, /* tp_doc */ (traverseproc)deque_traverse, /* tp_traverse */ (inquiry)deque_clear, /* tp_clear */ (richcmpfunc)deque_richcompare, /* tp_richcompare */ ! offsetof(dequeobject, weakreflist), /* tp_weaklistoffset*/ (getiterfunc)deque_iter, /* tp_iter */ 0, /* tp_iternext */
participants (1)
-
rhettingerīŧ users.sourceforge.net