From 501c7c7d0eb8c8fb1a9384092efed0141052f324 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 16 Aug 2001 20:41:56 +0000 Subject: classobject.c:instancemethod_descr_get(): when a bound method is assigned to a class variable and then accessed via an instance, it should not be rebound. test_descr.py:methods(): test for the condition above. --- Objects/classobject.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'Objects/classobject.c') diff --git a/Objects/classobject.c b/Objects/classobject.c index 255a432f53..82eb1d51ed 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -2196,6 +2196,11 @@ instancemethod_call(PyObject *func, PyObject *arg, PyObject *kw) static PyObject * instancemethod_descr_get(PyObject *meth, PyObject *obj, PyObject *type) { + if (PyMethod_GET_SELF(meth) != NULL) { + /* Don't rebind an already bound method */ + Py_INCREF(meth); + return meth; + } if (obj == Py_None) obj = NULL; return PyMethod_New(PyMethod_GET_FUNCTION(meth), obj, type); -- cgit v1.2.1