summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-05-25 09:24:38 (GMT)
committerGeorg Brandl <georg@python.org>2008-05-25 09:24:38 (GMT)
commitc9b0953bda1339137a7280ab1b1085abbdf4977a (patch)
tree48054e8a21b63cfb3d901133d0cda75aaf57e220
parent38feaf0fef244879411f094a7e68f542a6771dea (diff)
downloadcpython-c9b0953bda1339137a7280ab1b1085abbdf4977a.zip
cpython-c9b0953bda1339137a7280ab1b1085abbdf4977a.tar.gz
cpython-c9b0953bda1339137a7280ab1b1085abbdf4977a.tar.bz2
#2964: fix missing INCREF.
-rw-r--r--Misc/NEWS2
-rw-r--r--Objects/classobject.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index f385560..08bd092 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@ What's new in Python 3.0b1?
Core and Builtins
-----------------
+- Issue #2964: fix a missing INCREF in instancemethod_descr_get.
+
- Issue 2895: Don't crash when given bytes objects as keyword names.
- Issue 2798: When parsing arguments with PyArg_ParseTuple, the "s" code now
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 0e131eb..3c2bc3d 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -501,8 +501,10 @@ instancemethod_call(PyObject *self, PyObject *arg, PyObject *kw)
static PyObject *
instancemethod_descr_get(PyObject *descr, PyObject *obj, PyObject *type) {
register PyObject *func = PyInstanceMethod_GET_FUNCTION(descr);
- if (obj == NULL)
+ if (obj == NULL) {
+ Py_INCREF(func);
return func;
+ }
else
return PyMethod_New(func, obj);
}