From: Georg Brandl Date: Mon, 26 Feb 2007 12:28:57 +0000 (+0000) Subject: Fix refleaks in function objects caused by kwdefaults not being allocated. X-Git-Tag: v3.0a1~1178 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=80b331cb3080c9d9b28960f5e55475e3941ccdf6;p=thirdparty%2FPython%2Fcpython.git Fix refleaks in function objects caused by kwdefaults not being allocated. Should func_new be extended to support a "kwdefaults" arg? --- diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 956cbbc1b78e..d835f898b95d 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -413,7 +413,7 @@ func_set_kwdefaults(PyFunctionObject *op, PyObject *value) 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 @@ func_dealloc(PyFunctionObject *op) 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 @@ func_traverse(PyFunctionObject *f, visitproc visit, void *arg) 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);