diff options
| -rw-r--r-- | Lib/test/test_descr.py | 12 | ||||
| -rw-r--r-- | Misc/ACKS | 1 | ||||
| -rw-r--r-- | Objects/typeobject.c | 1 | 
3 files changed, 14 insertions, 0 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index dca8ea1760..ea67c4eb77 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -1163,6 +1163,18 @@ def slots():      gc.collect()      vereq(Counted.counter, 0) +    # Test lookup leaks [SF bug 572567] +    import sys,gc +    class G(object): +        def __cmp__(self, other): +            return 0 +    g = G() +    orig_objects = len(gc.get_objects()) +    for i in xrange(10): +        g==g +    new_objects = len(gc.get_objects()) +    vereq(orig_objects, new_objects) +  def dynamics():      if verbose: print "Testing class attribute propagation..."      class D(object): @@ -233,6 +233,7 @@ John Interrante  Ben Jackson  Paul Jackson  David Jacobs +Kevin Jacobs  Geert Jansen  Jack Jansen  Bill Janssen diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 47613f51f2..2beb3b32a8 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3286,6 +3286,7 @@ half_compare(PyObject *self, PyObject *other)  			res = PyObject_Call(func, args, NULL);  			Py_DECREF(args);  		} +		Py_DECREF(func);  		if (res != Py_NotImplemented) {  			if (res == NULL)  				return -2;  | 
