diff options
Diffstat (limited to 'Include/weakrefobject.h')
-rw-r--r-- | Include/weakrefobject.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Include/weakrefobject.h b/Include/weakrefobject.h index effa0ed..3503892 100644 --- a/Include/weakrefobject.h +++ b/Include/weakrefobject.h @@ -22,11 +22,16 @@ PyAPI_DATA(PyTypeObject) _PyWeakref_RefType; PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType; PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType; -#define PyWeakref_CheckRef(op) \ +#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType) +#define PyWeakref_CheckRefExact(op) \ ((op)->ob_type == &_PyWeakref_RefType) #define PyWeakref_CheckProxy(op) \ (((op)->ob_type == &_PyWeakref_ProxyType) || \ ((op)->ob_type == &_PyWeakref_CallableProxyType)) + +/* This macro calls PyWeakref_CheckRef() last since that can involve a + function call; this makes it more likely that the function call + will be avoided. */ #define PyWeakref_Check(op) \ (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) |