[Python-checkins]
python/dist/src/Modules collectionsmodule.c, 1.15, 1.16
rhettinger at users.sourceforge.net
rhettinger at users.sourceforge.net
Sun May 30 03:26:49 EDT 2004
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 */
More information about the Python-checkins
mailing list