diff options
author | Georg Brandl <georg@python.org> | 2007-02-26 12:28:57 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2007-02-26 12:28:57 (GMT) |
commit | 80b331cb3080c9d9b28960f5e55475e3941ccdf6 (patch) | |
tree | b69ba5c60910145a81115929fe6b0b0eb13c9891 | |
parent | 257d3d93caa1c5e8320ae1960e0d81e58a7b90c0 (diff) | |
download | cpython-80b331cb3080c9d9b28960f5e55475e3941ccdf6.zip cpython-80b331cb3080c9d9b28960f5e55475e3941ccdf6.tar.gz cpython-80b331cb3080c9d9b28960f5e55475e3941ccdf6.tar.bz2 |
Fix refleaks in function objects caused by kwdefaults not being allocated.
Should func_new be extended to support a "kwdefaults" arg?
-rw-r--r-- | Objects/funcobject.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 956cbbc..d835f89 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); |