diff Objects/funcobject.c @ 40923:25a84900e205

Fix refleaks in function objects caused by kwdefaults not being allocated. Should func_new be extended to support a "kwdefaults" arg?
author Georg Brandl <georg@python.org>
date Mon, 26 Feb 2007 12:28:57 +0000
parents eaaee785eb86
children f60c877d52c8
line wrap: on
line diff
--- a/Objects/funcobject.c	Mon Feb 26 10:35:10 2007 +0000
+++ b/Objects/funcobject.c	Mon Feb 26 12:28:57 2007 +0000
@@ -413,7 +413,7 @@
 
 	if (value == Py_None)
 		value = NULL;
-	/* Legal to del f.func_defaults.
+	/* Legal to del f.func_kwdefaults.
 	 * Can only set func_kwdefaults to NULL or a dict. */
 	if (value != NULL && !PyDict_Check(value)) {
 		PyErr_SetString(PyExc_TypeError,
@@ -587,6 +587,7 @@
 	Py_XDECREF(op->func_module);
 	Py_DECREF(op->func_name);
 	Py_XDECREF(op->func_defaults);
+	Py_XDECREF(op->func_kwdefaults);
 	Py_XDECREF(op->func_doc);
 	Py_XDECREF(op->func_dict);
 	Py_XDECREF(op->func_closure);
@@ -609,6 +610,7 @@
 	Py_VISIT(f->func_globals);
 	Py_VISIT(f->func_module);
 	Py_VISIT(f->func_defaults);
+	Py_VISIT(f->func_kwdefaults);
 	Py_VISIT(f->func_doc);
 	Py_VISIT(f->func_name);
 	Py_VISIT(f->func_dict);