Coverage Report

Created: 2022-07-08 09:39

/home/mdboom/Work/builds/cpython/Include/weakrefobject.h
Line
Count
Source
1
/* Weak references objects for Python. */
2
3
#ifndef Py_WEAKREFOBJECT_H
4
#define Py_WEAKREFOBJECT_H
5
#ifdef __cplusplus
6
extern "C" {
7
#endif
8
9
typedef struct _PyWeakReference PyWeakReference;
10
11
PyAPI_DATA(PyTypeObject) _PyWeakref_RefType;
12
PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType;
13
PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType;
14
15
#define PyWeakref_CheckRef(op) PyObject_TypeCheck((op), &_PyWeakref_RefType)
16
#define PyWeakref_CheckRefExact(op) \
17
        Py_IS_TYPE((op), &_PyWeakref_RefType)
18
#define PyWeakref_CheckProxy(op) \
19
        (Py_IS_TYPE((op), &_PyWeakref_ProxyType) \
20
         || 
Py_IS_TYPE5.06M
((op), &_PyWeakref_CallableProxyType))
21
22
#define PyWeakref_Check(op) \
23
        (
PyWeakref_CheckRef6.43M
(op) ||
PyWeakref_CheckProxy5.05M
(op))
24
25
26
PyAPI_FUNC(PyObject *) PyWeakref_NewRef(PyObject *ob,
27
                                        PyObject *callback);
28
PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob,
29
                                          PyObject *callback);
30
PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref);
31
32
33
#ifndef Py_LIMITED_API
34
#  define Py_CPYTHON_WEAKREFOBJECT_H
35
#  include "cpython/weakrefobject.h"
36
#  undef Py_CPYTHON_WEAKREFOBJECT_H
37
#endif
38
39
#ifdef __cplusplus
40
}
41
#endif
42
#endif /* !Py_WEAKREFOBJECT_H */