[Python-checkins] python/dist/src/Objects fileobject.c,2.190,2.191

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Sun May 30 20:35:54 EDT 2004


Update of /cvsroot/python/python/dist/src/Objects
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10541/Objects
Modified Files:
	fileobject.c 
Log Message:
Add weakref support to array.array and file objects.
Index: fileobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/fileobject.c,v
retrieving revision 2.190
retrieving revision 2.191
diff -C2 -d -r2.190 -r2.191
*** fileobject.c	4 Apr 2004 06:58:27 -0000	2.190
--- fileobject.c	31 May 2004 00:35:51 -0000	2.191
***************
*** 308,311 ****
--- 308,313 ----
 file_dealloc(PyFileObject *f)
 {
+ 	if (f->weakreflist != NULL)
+ 		PyObject_ClearWeakRefs((PyObject *) f);
 	if (f->f_fp != NULL && f->f_close != NULL) {
 		Py_BEGIN_ALLOW_THREADS
***************
*** 1822,1825 ****
--- 1824,1828 ----
 		Py_INCREF(Py_None);
 		((PyFileObject *)self)->f_encoding = Py_None;
+ 		((PyFileObject *)self)->weakreflist = NULL;
 	}
 	return self;
***************
*** 1943,1952 ****
 	PyObject_GenericSetAttr,		/* tp_setattro */
 	0,					/* tp_as_buffer */
! 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
 	file_doc,				/* tp_doc */
 	0,					/* tp_traverse */
 	0,					/* tp_clear */
 	0,					/* tp_richcompare */
! 	0,					/* tp_weaklistoffset */
 	(getiterfunc)file_getiter,		/* tp_iter */
 	(iternextfunc)file_iternext,		/* tp_iternext */
--- 1946,1955 ----
 	PyObject_GenericSetAttr,		/* tp_setattro */
 	0,					/* tp_as_buffer */
! 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
 	file_doc,				/* tp_doc */
 	0,					/* tp_traverse */
 	0,					/* tp_clear */
 	0,					/* tp_richcompare */
! 	offsetof(PyFileObject, weakreflist),	/* tp_weaklistoffset */
 	(getiterfunc)file_getiter,		/* tp_iter */
 	(iternextfunc)file_iternext,		/* tp_iternext */


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /