mirror of https://github.com/python/cpython
SF bug #1770766: weakref proxy has incorrect __nonzero__ behavior.
This commit is contained in:
parent
ca5d8fea3d
commit
e6c470f255
|
@ -271,6 +271,12 @@ class ReferencesTestCase(TestBase):
|
|||
del f[0]
|
||||
self.assertEqual(f.result, 0)
|
||||
|
||||
def test_proxy_bool(self):
|
||||
# Test clearing of SF bug #1170766
|
||||
class List(list): pass
|
||||
lyst = List()
|
||||
self.assertEqual(bool(weakref.proxy(lyst)), bool(lyst))
|
||||
|
||||
def test_getweakrefcount(self):
|
||||
o = C()
|
||||
ref1 = weakref.ref(o)
|
||||
|
|
|
@ -505,11 +505,7 @@ proxy_nonzero(PyWeakReference *proxy)
|
|||
PyObject *o = PyWeakref_GET_OBJECT(proxy);
|
||||
if (!proxy_checkref(proxy))
|
||||
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);
|
||||
else
|
||||
return 1;
|
||||
return PyObject_IsTrue(o);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue