From 30c9f3991cfb6a8179ea5dcf15fe17030dfbad05 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Tue, 13 Mar 2001 01:58:22 +0000 Subject: Variety of small INC/DECREF patches that fix reported memory leaks with free variables. Thanks to Martin v. Loewis for finding two of the problems. This fixes SF buf 405583. There is also a C API change: PyFrame_New() is reverting to its pre-2.1 signature. The change introduced by nested scopes was a mistake. XXX Is this okay between beta releases? cell_clear(), the GC helper, must decref its reference to break cycles. frame_dealloc() must dealloc all cell vars and free vars in addition to locals. eval_code2() setup code must INCREF cells it copies out of the closure. The STORE_DEREF opcode implementation must DECREF the object it passes to PyCell_Set(). --- Objects/cellobject.c | 1 + 1 file changed, 1 insertion(+) (limited to 'Objects/cellobject.c') diff --git a/Objects/cellobject.c b/Objects/cellobject.c index d9ecfd76f0..66fc8d1d52 100644 --- a/Objects/cellobject.c +++ b/Objects/cellobject.c @@ -83,6 +83,7 @@ cell_traverse(PyCellObject *op, visitproc visit, void *arg) static int cell_clear(PyCellObject *op) { + Py_XDECREF(op->ob_ref); op->ob_ref = NULL; return 0; } -- cgit v1.2.1