]> granicus.if.org Git - python/commitdiff
SF bug #978308, Spurious errors taking bool of dead pro
authorNeal Norwitz <nnorwitz@gmail.com>
Thu, 8 Jul 2004 01:22:31 +0000 (01:22 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Thu, 8 Jul 2004 01:22:31 +0000 (01:22 +0000)
Need to return -1 on error.

Needs backport.

Lib/test/test_weakref.py
Objects/weakrefobject.c

index 31e2c7f315f4d38a4edb00a056c3454d7a40331f..75869a758a65ecd4675b86ff4b66fca772d0499e 100644 (file)
@@ -104,6 +104,7 @@ class ReferencesTestCase(TestBase):
 
         self.assertRaises(weakref.ReferenceError, check, ref1)
         self.assertRaises(weakref.ReferenceError, check, ref2)
+        self.assertRaises(weakref.ReferenceError, bool, weakref.proxy(C()))
         self.assert_(self.cbcalled == 2)
 
     def check_basic_ref(self, factory):
index 572c224a09669186e4a462f7f51c30488b3c6ab9..54fe446e42fd8a853257ab7206dab599ae2a1902 100644 (file)
@@ -504,7 +504,7 @@ proxy_nonzero(PyWeakReference *proxy)
 {
     PyObject *o = PyWeakref_GET_OBJECT(proxy);
     if (!proxy_checkref(proxy))
-        return 1;
+        return -1;
     if (o->ob_type->tp_as_number &&
         o->ob_type->tp_as_number->nb_nonzero)
         return (*o->ob_type->tp_as_number->nb_nonzero)(o);