Mercurial > cpython-lru_cache-weakref
view Include/weakrefobject.h @ 25838:8540887bcec6 2.2
Backport of 2.183:
Fix memory leak in add_subclass() found by NealN with valgrind.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 18 Oct 2002 13:42:21 +0000 |
| parents | f48782237f85 |
| children | c1eb668525e1 |
line wrap: on
line source
/* Weak references objects for Python. */ #ifndef Py_WEAKREFOBJECT_H #define Py_WEAKREFOBJECT_H #ifdef __cplusplus extern "C" { #endif typedef struct _PyWeakReference PyWeakReference; struct _PyWeakReference { PyObject_HEAD PyObject *wr_object; PyObject *wr_callback; long hash; PyWeakReference *wr_prev; PyWeakReference *wr_next; }; extern DL_IMPORT(PyTypeObject) _PyWeakref_RefType; extern DL_IMPORT(PyTypeObject) _PyWeakref_ProxyType; extern DL_IMPORT(PyTypeObject) _PyWeakref_CallableProxyType; #define PyWeakref_CheckRef(op) \ ((op)->ob_type == &_PyWeakref_RefType) #define PyWeakref_CheckProxy(op) \ (((op)->ob_type == &_PyWeakref_ProxyType) || \ ((op)->ob_type == &_PyWeakref_CallableProxyType)) #define PyWeakref_Check(op) \ (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) extern DL_IMPORT(PyObject *) PyWeakref_NewRef(PyObject *ob, PyObject *callback); extern DL_IMPORT(PyObject *) PyWeakref_NewProxy(PyObject *ob, PyObject *callback); extern DL_IMPORT(PyObject *) PyWeakref_GetObject(PyObject *ref); extern DL_IMPORT(long) _PyWeakref_GetWeakrefCount(PyWeakReference *head); #define PyWeakref_GET_OBJECT(ref) (((PyWeakReference *)(ref))->wr_object) #ifdef __cplusplus } #endif #endif /* !Py_WEAKREFOBJECT_H */
