/home/mdboom/Work/builds/cpython/Include/internal/pycore_gc.h
Line | Count | Source |
1 | #ifndef Py_INTERNAL_GC_H |
2 | #define Py_INTERNAL_GC_H |
3 | #ifdef __cplusplus |
4 | extern "C" { |
5 | #endif |
6 | |
7 | #ifndef Py_BUILD_CORE |
8 | # error "this header requires Py_BUILD_CORE define" |
9 | #endif |
10 | |
11 | /* GC information is stored BEFORE the object structure. */ |
12 | typedef struct { |
13 | // Pointer to next object in the list. |
14 | // 0 means the object is not tracked |
15 | uintptr_t _gc_next; |
16 | |
17 | // Pointer to previous object in the list. |
18 | // Lowest two bits are used for flags documented later. |
19 | uintptr_t _gc_prev; |
20 | } PyGC_Head; |
21 | |
22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { |
23 | return (_Py_CAST(PyGC_Head*, op) - 1); |
24 | } Unexecuted instantiation: myreadline.c:_Py_AS_GC Unexecuted instantiation: tokenizer.c:_Py_AS_GC Unexecuted instantiation: abstract.c:_Py_AS_GC Unexecuted instantiation: boolobject.c:_Py_AS_GC bytearrayobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: call.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: codeobject.c:_Py_AS_GC Unexecuted instantiation: complexobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
genericaliasobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: fileobject.c:_Py_AS_GC Unexecuted instantiation: floatobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: interpreteridobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: longobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: moduleobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: rangeobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
unicodeobject.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: weakrefobject.c:_Py_AS_GC Unexecuted instantiation: _warnings.c:_Py_AS_GC Unexecuted instantiation: Python-ast.c:_Py_AS_GC Unexecuted instantiation: ast.c:_Py_AS_GC Unexecuted instantiation: ast_opt.c:_Py_AS_GC Unexecuted instantiation: ast_unparse.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: codecs.c:_Py_AS_GC Unexecuted instantiation: compile.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: errors.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: frozenmain.c:_Py_AS_GC Unexecuted instantiation: getargs.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: import.c:_Py_AS_GC Unexecuted instantiation: importdl.c:_Py_AS_GC Unexecuted instantiation: initconfig.c:_Py_AS_GC Unexecuted instantiation: marshal.c:_Py_AS_GC Unexecuted instantiation: mystrtoul.c:_Py_AS_GC Unexecuted instantiation: preconfig.c:_Py_AS_GC Unexecuted instantiation: pylifecycle.c:_Py_AS_GC Unexecuted instantiation: pystate.c:_Py_AS_GC Unexecuted instantiation: pythonrun.c:_Py_AS_GC Unexecuted instantiation: specialize.c:_Py_AS_GC Unexecuted instantiation: symtable.c:_Py_AS_GC Unexecuted instantiation: sysmodule.c:_Py_AS_GC Unexecuted instantiation: thread.c:_Py_AS_GC Unexecuted instantiation: traceback.c:_Py_AS_GC Unexecuted instantiation: formatter_unicode.c:_Py_AS_GC Unexecuted instantiation: fileutils.c:_Py_AS_GC Unexecuted instantiation: dynload_shlib.c:_Py_AS_GC Unexecuted instantiation: main.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: atexitmodule.c:_Py_AS_GC Unexecuted instantiation: faulthandler.c:_Py_AS_GC Unexecuted instantiation: posixmodule.c:_Py_AS_GC Unexecuted instantiation: signalmodule.c:_Py_AS_GC Unexecuted instantiation: _tracemalloc.c:_Py_AS_GC Unexecuted instantiation: _collectionsmodule.c:_Py_AS_GC Unexecuted instantiation: _iomodule.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
itertoolsmodule.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: sre.c:_Py_AS_GC Unexecuted instantiation: _threadmodule.c:_Py_AS_GC Unexecuted instantiation: timemodule.c:_Py_AS_GC Unexecuted instantiation: _weakref.c:_Py_AS_GC Unexecuted instantiation: _abc.c:_Py_AS_GC _functoolsmodule.c:_Py_AS_GC Line | Count | Source | 22 | static inline PyGC_Head* _Py_AS_GC(PyObject *op) { | 23 | return (_Py_CAST(PyGC_Head*, op) - 1); | 24 | } |
Unexecuted instantiation: _operator.c:_Py_AS_GC Unexecuted instantiation: deepfreeze.c:_Py_AS_GC |
25 | #define _PyGC_Head_UNUSED PyGC_Head |
26 | |
27 | /* True if the object is currently tracked by the GC. */ |
28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { |
29 | PyGC_Head *gc = _Py_AS_GC(op); |
30 | return (gc->_gc_next != 0); |
31 | } Unexecuted instantiation: myreadline.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: tokenizer.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: abstract.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: boolobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: bytearrayobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: bytesobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: call.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: cellobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: classobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: codeobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: complexobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: descrobject.c:_PyObject_GC_IS_TRACKED enumobject.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: exceptions.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: genericaliasobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: genobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: fileobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: floatobject.c:_PyObject_GC_IS_TRACKED frameobject.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: funcobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: interpreteridobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: iterobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: listobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: longobject.c:_PyObject_GC_IS_TRACKED dictobject.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
odictobject.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: memoryobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: methodobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: moduleobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: object.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: rangeobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: setobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: sliceobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: structseq.c:_PyObject_GC_IS_TRACKED tupleobject.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: typeobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: unicodeobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: unionobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: weakrefobject.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _warnings.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: Python-ast.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: ast.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: ast_opt.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: ast_unparse.c:_PyObject_GC_IS_TRACKED bltinmodule.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
ceval.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: codecs.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: compile.c:_PyObject_GC_IS_TRACKED context.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: errors.c:_PyObject_GC_IS_TRACKED frame.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: frozenmain.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: getargs.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: hamt.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: import.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: importdl.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: initconfig.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: marshal.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: mystrtoul.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: preconfig.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: pylifecycle.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: pystate.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: pythonrun.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: specialize.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: symtable.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: sysmodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: thread.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: traceback.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: formatter_unicode.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: fileutils.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: dynload_shlib.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: main.c:_PyObject_GC_IS_TRACKED gcmodule.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: atexitmodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: faulthandler.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: posixmodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: signalmodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _tracemalloc.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _collectionsmodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _iomodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: iobase.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: fileio.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: bytesio.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: bufferedio.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: textio.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: stringio.c:_PyObject_GC_IS_TRACKED itertoolsmodule.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: sre.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _threadmodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: timemodule.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _weakref.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: _abc.c:_PyObject_GC_IS_TRACKED _functoolsmodule.c:_PyObject_GC_IS_TRACKED Line | Count | Source | 28 | static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { | 29 | PyGC_Head *gc = _Py_AS_GC(op); | 30 | return (gc->_gc_next != 0); | 31 | } |
Unexecuted instantiation: _operator.c:_PyObject_GC_IS_TRACKED Unexecuted instantiation: deepfreeze.c:_PyObject_GC_IS_TRACKED |
32 | #define _PyObject_GC_IS_TRACKED(op) _PyObject_GC_IS_TRACKED(_Py_CAST885M (PyObject*, op)) |
33 | |
34 | /* True if the object may be tracked by the GC in the future, or already is. |
35 | This can be useful to implement some optimizations. */ |
36 | static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { |
37 | if (!PyObject_IS_GC(obj)) { Branch (37:9): [True: 312M, False: 192M]
Branch (37:9): [True: 50.5M, False: 260M]
Branch (37:9): [True: 0, False: 0]
Branch (37:9): [True: 100, False: 2]
|
38 | return 0; |
39 | } |
40 | if (PyTuple_CheckExact(obj)) { |
41 | return _PyObject_GC_IS_TRACKED(obj); |
42 | } |
43 | return 1; |
44 | } Unexecuted instantiation: myreadline.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: tokenizer.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: abstract.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: boolobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: bytearrayobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: bytesobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: call.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: cellobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: classobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: codeobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: complexobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: descrobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: enumobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: exceptions.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: genericaliasobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: genobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: fileobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: floatobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: frameobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: funcobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: interpreteridobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: iterobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: listobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: longobject.c:_PyObject_GC_MAY_BE_TRACKED dictobject.c:_PyObject_GC_MAY_BE_TRACKED Line | Count | Source | 36 | static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { | 37 | if (!PyObject_IS_GC(obj)) { Branch (37:9): [True: 312M, False: 192M]
| 38 | return 0; | 39 | } | 40 | if (PyTuple_CheckExact(obj)) { | 41 | return _PyObject_GC_IS_TRACKED(obj); | 42 | } | 43 | return 1; | 44 | } |
Unexecuted instantiation: odictobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: memoryobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: methodobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: moduleobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: object.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: rangeobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: setobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: sliceobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: structseq.c:_PyObject_GC_MAY_BE_TRACKED tupleobject.c:_PyObject_GC_MAY_BE_TRACKED Line | Count | Source | 36 | static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { | 37 | if (!PyObject_IS_GC(obj)) { Branch (37:9): [True: 50.5M, False: 260M]
| 38 | return 0; | 39 | } | 40 | if (PyTuple_CheckExact(obj)) { | 41 | return _PyObject_GC_IS_TRACKED(obj); | 42 | } | 43 | return 1; | 44 | } |
Unexecuted instantiation: typeobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: unicodeobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: unionobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: weakrefobject.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _warnings.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: Python-ast.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: ast.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: ast_opt.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: ast_unparse.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: bltinmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: ceval.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: codecs.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: compile.c:_PyObject_GC_MAY_BE_TRACKED context.c:_PyObject_GC_MAY_BE_TRACKED Line | Count | Source | 36 | static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { | 37 | if (!PyObject_IS_GC(obj)) { Branch (37:9): [True: 100, False: 2]
| 38 | return 0; | 39 | } | 40 | if (PyTuple_CheckExact(obj)) { | 41 | return _PyObject_GC_IS_TRACKED(obj); | 42 | } | 43 | return 1; | 44 | } |
Unexecuted instantiation: errors.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: frame.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: frozenmain.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: getargs.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: hamt.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: import.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: importdl.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: initconfig.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: marshal.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: mystrtoul.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: preconfig.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: pylifecycle.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: pystate.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: pythonrun.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: specialize.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: symtable.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: sysmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: thread.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: traceback.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: formatter_unicode.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: fileutils.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: dynload_shlib.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: main.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: gcmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: atexitmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: faulthandler.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: posixmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: signalmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _tracemalloc.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _collectionsmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _iomodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: iobase.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: fileio.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: bytesio.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: bufferedio.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: textio.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: stringio.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: itertoolsmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: sre.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _threadmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: timemodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _weakref.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _abc.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _functoolsmodule.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: _operator.c:_PyObject_GC_MAY_BE_TRACKED Unexecuted instantiation: deepfreeze.c:_PyObject_GC_MAY_BE_TRACKED |
45 | |
46 | |
47 | /* Bit flags for _gc_prev */ |
48 | /* Bit 0 is set when tp_finalize is called */ |
49 | #define _PyGC_PREV_MASK_FINALIZED (1) |
50 | /* Bit 1 is set when the object is in generation which is GCed currently. */ |
51 | #define _PyGC_PREV_MASK_COLLECTING (2) |
52 | /* The (N-2) most significant bits contain the real address. */ |
53 | #define _PyGC_PREV_SHIFT (2) |
54 | #define _PyGC_PREV_MASK (((uintptr_t) -1) << _PyGC_PREV_SHIFT) |
55 | |
56 | // Lowest bit of _gc_next is used for flags only in GC. |
57 | // But it is always 0 for normal code. |
58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { |
59 | uintptr_t next = gc->_gc_next; |
60 | return _Py_CAST(PyGC_Head*, next); |
61 | } Unexecuted instantiation: myreadline.c:_PyGCHead_NEXT Unexecuted instantiation: tokenizer.c:_PyGCHead_NEXT Unexecuted instantiation: abstract.c:_PyGCHead_NEXT Unexecuted instantiation: boolobject.c:_PyGCHead_NEXT bytearrayobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
bytesobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: call.c:_PyGCHead_NEXT cellobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
classobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: codeobject.c:_PyGCHead_NEXT Unexecuted instantiation: complexobject.c:_PyGCHead_NEXT descrobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: enumobject.c:_PyGCHead_NEXT exceptions.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
genericaliasobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
genobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: fileobject.c:_PyGCHead_NEXT Unexecuted instantiation: floatobject.c:_PyGCHead_NEXT frameobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
funcobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: interpreteridobject.c:_PyGCHead_NEXT iterobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
listobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: longobject.c:_PyGCHead_NEXT dictobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
odictobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
memoryobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: methodobject.c:_PyGCHead_NEXT Unexecuted instantiation: moduleobject.c:_PyGCHead_NEXT Unexecuted instantiation: object.c:_PyGCHead_NEXT Unexecuted instantiation: rangeobject.c:_PyGCHead_NEXT setobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
sliceobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: structseq.c:_PyGCHead_NEXT tupleobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
typeobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
unicodeobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
unionobject.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: weakrefobject.c:_PyGCHead_NEXT Unexecuted instantiation: _warnings.c:_PyGCHead_NEXT Unexecuted instantiation: Python-ast.c:_PyGCHead_NEXT Unexecuted instantiation: ast.c:_PyGCHead_NEXT Unexecuted instantiation: ast_opt.c:_PyGCHead_NEXT Unexecuted instantiation: ast_unparse.c:_PyGCHead_NEXT Unexecuted instantiation: bltinmodule.c:_PyGCHead_NEXT Unexecuted instantiation: ceval.c:_PyGCHead_NEXT Unexecuted instantiation: codecs.c:_PyGCHead_NEXT Unexecuted instantiation: compile.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: errors.c:_PyGCHead_NEXT Unexecuted instantiation: frame.c:_PyGCHead_NEXT Unexecuted instantiation: frozenmain.c:_PyGCHead_NEXT Unexecuted instantiation: getargs.c:_PyGCHead_NEXT Unexecuted instantiation: hamt.c:_PyGCHead_NEXT Unexecuted instantiation: import.c:_PyGCHead_NEXT Unexecuted instantiation: importdl.c:_PyGCHead_NEXT Unexecuted instantiation: initconfig.c:_PyGCHead_NEXT Unexecuted instantiation: marshal.c:_PyGCHead_NEXT Unexecuted instantiation: mystrtoul.c:_PyGCHead_NEXT Unexecuted instantiation: preconfig.c:_PyGCHead_NEXT Unexecuted instantiation: pylifecycle.c:_PyGCHead_NEXT Unexecuted instantiation: pystate.c:_PyGCHead_NEXT Unexecuted instantiation: pythonrun.c:_PyGCHead_NEXT Unexecuted instantiation: specialize.c:_PyGCHead_NEXT Unexecuted instantiation: symtable.c:_PyGCHead_NEXT Unexecuted instantiation: sysmodule.c:_PyGCHead_NEXT Unexecuted instantiation: thread.c:_PyGCHead_NEXT Unexecuted instantiation: traceback.c:_PyGCHead_NEXT Unexecuted instantiation: formatter_unicode.c:_PyGCHead_NEXT Unexecuted instantiation: fileutils.c:_PyGCHead_NEXT Unexecuted instantiation: dynload_shlib.c:_PyGCHead_NEXT Unexecuted instantiation: main.c:_PyGCHead_NEXT gcmodule.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: atexitmodule.c:_PyGCHead_NEXT Unexecuted instantiation: faulthandler.c:_PyGCHead_NEXT Unexecuted instantiation: posixmodule.c:_PyGCHead_NEXT Unexecuted instantiation: signalmodule.c:_PyGCHead_NEXT Unexecuted instantiation: _tracemalloc.c:_PyGCHead_NEXT Unexecuted instantiation: _collectionsmodule.c:_PyGCHead_NEXT Unexecuted instantiation: _iomodule.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
bufferedio.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
stringio.c:_PyGCHead_NEXT Line | Count | Source | 58 | static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { | 59 | uintptr_t next = gc->_gc_next; | 60 | return _Py_CAST(PyGC_Head*, next); | 61 | } |
Unexecuted instantiation: itertoolsmodule.c:_PyGCHead_NEXT Unexecuted instantiation: sre.c:_PyGCHead_NEXT Unexecuted instantiation: _threadmodule.c:_PyGCHead_NEXT Unexecuted instantiation: timemodule.c:_PyGCHead_NEXT Unexecuted instantiation: _weakref.c:_PyGCHead_NEXT Unexecuted instantiation: _abc.c:_PyGCHead_NEXT Unexecuted instantiation: _functoolsmodule.c:_PyGCHead_NEXT Unexecuted instantiation: _operator.c:_PyGCHead_NEXT Unexecuted instantiation: deepfreeze.c:_PyGCHead_NEXT |
62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { |
63 | gc->_gc_next = _Py_CAST(uintptr_t, next); |
64 | } Unexecuted instantiation: myreadline.c:_PyGCHead_SET_NEXT Unexecuted instantiation: tokenizer.c:_PyGCHead_SET_NEXT Unexecuted instantiation: abstract.c:_PyGCHead_SET_NEXT Unexecuted instantiation: boolobject.c:_PyGCHead_SET_NEXT bytearrayobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
bytesobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: call.c:_PyGCHead_SET_NEXT cellobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
classobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: codeobject.c:_PyGCHead_SET_NEXT Unexecuted instantiation: complexobject.c:_PyGCHead_SET_NEXT descrobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
enumobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
exceptions.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
genericaliasobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
genobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: fileobject.c:_PyGCHead_SET_NEXT Unexecuted instantiation: floatobject.c:_PyGCHead_SET_NEXT frameobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
funcobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: interpreteridobject.c:_PyGCHead_SET_NEXT iterobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
listobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: longobject.c:_PyGCHead_SET_NEXT dictobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
odictobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
memoryobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
methodobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: moduleobject.c:_PyGCHead_SET_NEXT Unexecuted instantiation: object.c:_PyGCHead_SET_NEXT Unexecuted instantiation: rangeobject.c:_PyGCHead_SET_NEXT setobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
sliceobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
structseq.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
tupleobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
typeobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
unicodeobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
unionobject.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: weakrefobject.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _warnings.c:_PyGCHead_SET_NEXT Unexecuted instantiation: Python-ast.c:_PyGCHead_SET_NEXT Unexecuted instantiation: ast.c:_PyGCHead_SET_NEXT Unexecuted instantiation: ast_opt.c:_PyGCHead_SET_NEXT Unexecuted instantiation: ast_unparse.c:_PyGCHead_SET_NEXT bltinmodule.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: ceval.c:_PyGCHead_SET_NEXT Unexecuted instantiation: codecs.c:_PyGCHead_SET_NEXT Unexecuted instantiation: compile.c:_PyGCHead_SET_NEXT context.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: errors.c:_PyGCHead_SET_NEXT frame.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: frozenmain.c:_PyGCHead_SET_NEXT Unexecuted instantiation: getargs.c:_PyGCHead_SET_NEXT hamt.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: import.c:_PyGCHead_SET_NEXT Unexecuted instantiation: importdl.c:_PyGCHead_SET_NEXT Unexecuted instantiation: initconfig.c:_PyGCHead_SET_NEXT Unexecuted instantiation: marshal.c:_PyGCHead_SET_NEXT Unexecuted instantiation: mystrtoul.c:_PyGCHead_SET_NEXT Unexecuted instantiation: preconfig.c:_PyGCHead_SET_NEXT Unexecuted instantiation: pylifecycle.c:_PyGCHead_SET_NEXT Unexecuted instantiation: pystate.c:_PyGCHead_SET_NEXT Unexecuted instantiation: pythonrun.c:_PyGCHead_SET_NEXT Unexecuted instantiation: specialize.c:_PyGCHead_SET_NEXT Unexecuted instantiation: symtable.c:_PyGCHead_SET_NEXT Unexecuted instantiation: sysmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: thread.c:_PyGCHead_SET_NEXT Unexecuted instantiation: traceback.c:_PyGCHead_SET_NEXT Unexecuted instantiation: formatter_unicode.c:_PyGCHead_SET_NEXT Unexecuted instantiation: fileutils.c:_PyGCHead_SET_NEXT Unexecuted instantiation: dynload_shlib.c:_PyGCHead_SET_NEXT Unexecuted instantiation: main.c:_PyGCHead_SET_NEXT gcmodule.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: atexitmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: faulthandler.c:_PyGCHead_SET_NEXT Unexecuted instantiation: posixmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: signalmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _tracemalloc.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _collectionsmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _iomodule.c:_PyGCHead_SET_NEXT iobase.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
fileio.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
bytesio.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
bufferedio.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
textio.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
stringio.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
itertoolsmodule.c:_PyGCHead_SET_NEXT Line | Count | Source | 62 | static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { | 63 | gc->_gc_next = _Py_CAST(uintptr_t, next); | 64 | } |
Unexecuted instantiation: sre.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _threadmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: timemodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _weakref.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _abc.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _functoolsmodule.c:_PyGCHead_SET_NEXT Unexecuted instantiation: _operator.c:_PyGCHead_SET_NEXT Unexecuted instantiation: deepfreeze.c:_PyGCHead_SET_NEXT |
65 | |
66 | // Lowest two bits of _gc_prev is used for _PyGC_PREV_MASK_* flags. |
67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { |
68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); |
69 | return _Py_CAST(PyGC_Head*, prev); |
70 | } Unexecuted instantiation: myreadline.c:_PyGCHead_PREV Unexecuted instantiation: tokenizer.c:_PyGCHead_PREV Unexecuted instantiation: abstract.c:_PyGCHead_PREV Unexecuted instantiation: boolobject.c:_PyGCHead_PREV bytearrayobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
bytesobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: call.c:_PyGCHead_PREV cellobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
classobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: codeobject.c:_PyGCHead_PREV Unexecuted instantiation: complexobject.c:_PyGCHead_PREV descrobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: enumobject.c:_PyGCHead_PREV exceptions.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
genericaliasobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
genobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: fileobject.c:_PyGCHead_PREV Unexecuted instantiation: floatobject.c:_PyGCHead_PREV frameobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
funcobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: interpreteridobject.c:_PyGCHead_PREV iterobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
listobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: longobject.c:_PyGCHead_PREV dictobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
odictobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
memoryobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: methodobject.c:_PyGCHead_PREV Unexecuted instantiation: moduleobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: rangeobject.c:_PyGCHead_PREV setobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
sliceobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: structseq.c:_PyGCHead_PREV tupleobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
typeobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
unicodeobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
unionobject.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: weakrefobject.c:_PyGCHead_PREV Unexecuted instantiation: _warnings.c:_PyGCHead_PREV Unexecuted instantiation: Python-ast.c:_PyGCHead_PREV Unexecuted instantiation: ast.c:_PyGCHead_PREV Unexecuted instantiation: ast_opt.c:_PyGCHead_PREV Unexecuted instantiation: ast_unparse.c:_PyGCHead_PREV Unexecuted instantiation: bltinmodule.c:_PyGCHead_PREV Unexecuted instantiation: ceval.c:_PyGCHead_PREV Unexecuted instantiation: codecs.c:_PyGCHead_PREV Unexecuted instantiation: compile.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: errors.c:_PyGCHead_PREV Unexecuted instantiation: frame.c:_PyGCHead_PREV Unexecuted instantiation: frozenmain.c:_PyGCHead_PREV Unexecuted instantiation: getargs.c:_PyGCHead_PREV Unexecuted instantiation: hamt.c:_PyGCHead_PREV Unexecuted instantiation: import.c:_PyGCHead_PREV Unexecuted instantiation: importdl.c:_PyGCHead_PREV Unexecuted instantiation: initconfig.c:_PyGCHead_PREV Unexecuted instantiation: marshal.c:_PyGCHead_PREV Unexecuted instantiation: mystrtoul.c:_PyGCHead_PREV Unexecuted instantiation: preconfig.c:_PyGCHead_PREV Unexecuted instantiation: pylifecycle.c:_PyGCHead_PREV Unexecuted instantiation: pystate.c:_PyGCHead_PREV Unexecuted instantiation: pythonrun.c:_PyGCHead_PREV Unexecuted instantiation: specialize.c:_PyGCHead_PREV Unexecuted instantiation: symtable.c:_PyGCHead_PREV Unexecuted instantiation: sysmodule.c:_PyGCHead_PREV Unexecuted instantiation: thread.c:_PyGCHead_PREV Unexecuted instantiation: traceback.c:_PyGCHead_PREV Unexecuted instantiation: formatter_unicode.c:_PyGCHead_PREV Unexecuted instantiation: fileutils.c:_PyGCHead_PREV Unexecuted instantiation: dynload_shlib.c:_PyGCHead_PREV Unexecuted instantiation: main.c:_PyGCHead_PREV gcmodule.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: atexitmodule.c:_PyGCHead_PREV Unexecuted instantiation: faulthandler.c:_PyGCHead_PREV Unexecuted instantiation: posixmodule.c:_PyGCHead_PREV Unexecuted instantiation: signalmodule.c:_PyGCHead_PREV Unexecuted instantiation: _tracemalloc.c:_PyGCHead_PREV Unexecuted instantiation: _collectionsmodule.c:_PyGCHead_PREV Unexecuted instantiation: _iomodule.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
bufferedio.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
stringio.c:_PyGCHead_PREV Line | Count | Source | 67 | static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { | 68 | uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); | 69 | return _Py_CAST(PyGC_Head*, prev); | 70 | } |
Unexecuted instantiation: itertoolsmodule.c:_PyGCHead_PREV Unexecuted instantiation: sre.c:_PyGCHead_PREV Unexecuted instantiation: _threadmodule.c:_PyGCHead_PREV Unexecuted instantiation: timemodule.c:_PyGCHead_PREV Unexecuted instantiation: _weakref.c:_PyGCHead_PREV Unexecuted instantiation: _abc.c:_PyGCHead_PREV Unexecuted instantiation: _functoolsmodule.c:_PyGCHead_PREV Unexecuted instantiation: _operator.c:_PyGCHead_PREV Unexecuted instantiation: deepfreeze.c:_PyGCHead_PREV |
71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { |
72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); |
73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); |
74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); |
75 | } Unexecuted instantiation: myreadline.c:_PyGCHead_SET_PREV Unexecuted instantiation: tokenizer.c:_PyGCHead_SET_PREV Unexecuted instantiation: abstract.c:_PyGCHead_SET_PREV Unexecuted instantiation: boolobject.c:_PyGCHead_SET_PREV bytearrayobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
bytesobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: call.c:_PyGCHead_SET_PREV cellobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
classobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: codeobject.c:_PyGCHead_SET_PREV Unexecuted instantiation: complexobject.c:_PyGCHead_SET_PREV descrobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
enumobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
exceptions.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
genericaliasobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
genobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: fileobject.c:_PyGCHead_SET_PREV Unexecuted instantiation: floatobject.c:_PyGCHead_SET_PREV frameobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
funcobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: interpreteridobject.c:_PyGCHead_SET_PREV iterobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
listobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: longobject.c:_PyGCHead_SET_PREV dictobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
odictobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
memoryobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
methodobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: moduleobject.c:_PyGCHead_SET_PREV object.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: rangeobject.c:_PyGCHead_SET_PREV setobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
sliceobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
structseq.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
tupleobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
typeobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
unicodeobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
unionobject.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: weakrefobject.c:_PyGCHead_SET_PREV Unexecuted instantiation: _warnings.c:_PyGCHead_SET_PREV Unexecuted instantiation: Python-ast.c:_PyGCHead_SET_PREV Unexecuted instantiation: ast.c:_PyGCHead_SET_PREV Unexecuted instantiation: ast_opt.c:_PyGCHead_SET_PREV Unexecuted instantiation: ast_unparse.c:_PyGCHead_SET_PREV bltinmodule.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: ceval.c:_PyGCHead_SET_PREV Unexecuted instantiation: codecs.c:_PyGCHead_SET_PREV Unexecuted instantiation: compile.c:_PyGCHead_SET_PREV context.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: errors.c:_PyGCHead_SET_PREV frame.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: frozenmain.c:_PyGCHead_SET_PREV Unexecuted instantiation: getargs.c:_PyGCHead_SET_PREV hamt.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: import.c:_PyGCHead_SET_PREV Unexecuted instantiation: importdl.c:_PyGCHead_SET_PREV Unexecuted instantiation: initconfig.c:_PyGCHead_SET_PREV Unexecuted instantiation: marshal.c:_PyGCHead_SET_PREV Unexecuted instantiation: mystrtoul.c:_PyGCHead_SET_PREV Unexecuted instantiation: preconfig.c:_PyGCHead_SET_PREV Unexecuted instantiation: pylifecycle.c:_PyGCHead_SET_PREV Unexecuted instantiation: pystate.c:_PyGCHead_SET_PREV Unexecuted instantiation: pythonrun.c:_PyGCHead_SET_PREV Unexecuted instantiation: specialize.c:_PyGCHead_SET_PREV Unexecuted instantiation: symtable.c:_PyGCHead_SET_PREV Unexecuted instantiation: sysmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: thread.c:_PyGCHead_SET_PREV Unexecuted instantiation: traceback.c:_PyGCHead_SET_PREV Unexecuted instantiation: formatter_unicode.c:_PyGCHead_SET_PREV Unexecuted instantiation: fileutils.c:_PyGCHead_SET_PREV Unexecuted instantiation: dynload_shlib.c:_PyGCHead_SET_PREV Unexecuted instantiation: main.c:_PyGCHead_SET_PREV gcmodule.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: atexitmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: faulthandler.c:_PyGCHead_SET_PREV Unexecuted instantiation: posixmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: signalmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: _tracemalloc.c:_PyGCHead_SET_PREV Unexecuted instantiation: _collectionsmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: _iomodule.c:_PyGCHead_SET_PREV iobase.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
fileio.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
bytesio.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
bufferedio.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
textio.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
stringio.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
itertoolsmodule.c:_PyGCHead_SET_PREV Line | Count | Source | 71 | static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { | 72 | uintptr_t uprev = _Py_CAST(uintptr_t, prev); | 73 | assert((uprev & ~_PyGC_PREV_MASK) == 0); | 74 | gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); | 75 | } |
Unexecuted instantiation: sre.c:_PyGCHead_SET_PREV Unexecuted instantiation: _threadmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: timemodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: _weakref.c:_PyGCHead_SET_PREV Unexecuted instantiation: _abc.c:_PyGCHead_SET_PREV Unexecuted instantiation: _functoolsmodule.c:_PyGCHead_SET_PREV Unexecuted instantiation: _operator.c:_PyGCHead_SET_PREV Unexecuted instantiation: deepfreeze.c:_PyGCHead_SET_PREV |
76 | |
77 | static inline int _PyGCHead_FINALIZED(PyGC_Head *gc) { |
78 | return ((gc->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0); |
79 | } Unexecuted instantiation: myreadline.c:_PyGCHead_FINALIZED Unexecuted instantiation: tokenizer.c:_PyGCHead_FINALIZED Unexecuted instantiation: abstract.c:_PyGCHead_FINALIZED Unexecuted instantiation: boolobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: bytearrayobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: bytesobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: call.c:_PyGCHead_FINALIZED Unexecuted instantiation: cellobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: classobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: codeobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: complexobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: descrobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: enumobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: exceptions.c:_PyGCHead_FINALIZED Unexecuted instantiation: genericaliasobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: genobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: fileobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: floatobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: frameobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: funcobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: interpreteridobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: iterobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: listobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: longobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: dictobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: odictobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: memoryobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: methodobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: moduleobject.c:_PyGCHead_FINALIZED object.c:_PyGCHead_FINALIZED Line | Count | Source | 77 | static inline int _PyGCHead_FINALIZED(PyGC_Head *gc) { | 78 | return ((gc->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0); | 79 | } |
Unexecuted instantiation: rangeobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: setobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: sliceobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: structseq.c:_PyGCHead_FINALIZED Unexecuted instantiation: tupleobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: typeobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: unicodeobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: unionobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: weakrefobject.c:_PyGCHead_FINALIZED Unexecuted instantiation: _warnings.c:_PyGCHead_FINALIZED Unexecuted instantiation: Python-ast.c:_PyGCHead_FINALIZED Unexecuted instantiation: ast.c:_PyGCHead_FINALIZED Unexecuted instantiation: ast_opt.c:_PyGCHead_FINALIZED Unexecuted instantiation: ast_unparse.c:_PyGCHead_FINALIZED Unexecuted instantiation: bltinmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: ceval.c:_PyGCHead_FINALIZED Unexecuted instantiation: codecs.c:_PyGCHead_FINALIZED Unexecuted instantiation: compile.c:_PyGCHead_FINALIZED Unexecuted instantiation: context.c:_PyGCHead_FINALIZED Unexecuted instantiation: errors.c:_PyGCHead_FINALIZED Unexecuted instantiation: frame.c:_PyGCHead_FINALIZED Unexecuted instantiation: frozenmain.c:_PyGCHead_FINALIZED Unexecuted instantiation: getargs.c:_PyGCHead_FINALIZED Unexecuted instantiation: hamt.c:_PyGCHead_FINALIZED Unexecuted instantiation: import.c:_PyGCHead_FINALIZED Unexecuted instantiation: importdl.c:_PyGCHead_FINALIZED Unexecuted instantiation: initconfig.c:_PyGCHead_FINALIZED Unexecuted instantiation: marshal.c:_PyGCHead_FINALIZED Unexecuted instantiation: mystrtoul.c:_PyGCHead_FINALIZED Unexecuted instantiation: preconfig.c:_PyGCHead_FINALIZED Unexecuted instantiation: pylifecycle.c:_PyGCHead_FINALIZED Unexecuted instantiation: pystate.c:_PyGCHead_FINALIZED Unexecuted instantiation: pythonrun.c:_PyGCHead_FINALIZED Unexecuted instantiation: specialize.c:_PyGCHead_FINALIZED Unexecuted instantiation: symtable.c:_PyGCHead_FINALIZED Unexecuted instantiation: sysmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: thread.c:_PyGCHead_FINALIZED Unexecuted instantiation: traceback.c:_PyGCHead_FINALIZED Unexecuted instantiation: formatter_unicode.c:_PyGCHead_FINALIZED Unexecuted instantiation: fileutils.c:_PyGCHead_FINALIZED Unexecuted instantiation: dynload_shlib.c:_PyGCHead_FINALIZED Unexecuted instantiation: main.c:_PyGCHead_FINALIZED gcmodule.c:_PyGCHead_FINALIZED Line | Count | Source | 77 | static inline int _PyGCHead_FINALIZED(PyGC_Head *gc) { | 78 | return ((gc->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0); | 79 | } |
Unexecuted instantiation: atexitmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: faulthandler.c:_PyGCHead_FINALIZED Unexecuted instantiation: posixmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: signalmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: _tracemalloc.c:_PyGCHead_FINALIZED Unexecuted instantiation: _collectionsmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: _iomodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: iobase.c:_PyGCHead_FINALIZED Unexecuted instantiation: fileio.c:_PyGCHead_FINALIZED Unexecuted instantiation: bytesio.c:_PyGCHead_FINALIZED Unexecuted instantiation: bufferedio.c:_PyGCHead_FINALIZED Unexecuted instantiation: textio.c:_PyGCHead_FINALIZED Unexecuted instantiation: stringio.c:_PyGCHead_FINALIZED Unexecuted instantiation: itertoolsmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: sre.c:_PyGCHead_FINALIZED Unexecuted instantiation: _threadmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: timemodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: _weakref.c:_PyGCHead_FINALIZED Unexecuted instantiation: _abc.c:_PyGCHead_FINALIZED Unexecuted instantiation: _functoolsmodule.c:_PyGCHead_FINALIZED Unexecuted instantiation: _operator.c:_PyGCHead_FINALIZED Unexecuted instantiation: deepfreeze.c:_PyGCHead_FINALIZED |
80 | static inline void _PyGCHead_SET_FINALIZED(PyGC_Head *gc) { |
81 | gc->_gc_prev |= _PyGC_PREV_MASK_FINALIZED; |
82 | } Unexecuted instantiation: myreadline.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: tokenizer.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: abstract.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: boolobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: bytearrayobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: bytesobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: call.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: cellobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: classobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: codeobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: complexobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: descrobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: enumobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: exceptions.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: genericaliasobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: genobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: fileobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: floatobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: frameobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: funcobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: interpreteridobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: iterobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: listobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: longobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: dictobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: odictobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: memoryobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: methodobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: moduleobject.c:_PyGCHead_SET_FINALIZED object.c:_PyGCHead_SET_FINALIZED Line | Count | Source | 80 | static inline void _PyGCHead_SET_FINALIZED(PyGC_Head *gc) { | 81 | gc->_gc_prev |= _PyGC_PREV_MASK_FINALIZED; | 82 | } |
Unexecuted instantiation: rangeobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: setobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: sliceobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: structseq.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: tupleobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: typeobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: unicodeobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: unionobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: weakrefobject.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _warnings.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: Python-ast.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: ast.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: ast_opt.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: ast_unparse.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: bltinmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: ceval.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: codecs.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: compile.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: context.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: errors.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: frame.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: frozenmain.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: getargs.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: hamt.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: import.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: importdl.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: initconfig.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: marshal.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: mystrtoul.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: preconfig.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: pylifecycle.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: pystate.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: pythonrun.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: specialize.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: symtable.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: sysmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: thread.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: traceback.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: formatter_unicode.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: fileutils.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: dynload_shlib.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: main.c:_PyGCHead_SET_FINALIZED gcmodule.c:_PyGCHead_SET_FINALIZED Line | Count | Source | 80 | static inline void _PyGCHead_SET_FINALIZED(PyGC_Head *gc) { | 81 | gc->_gc_prev |= _PyGC_PREV_MASK_FINALIZED; | 82 | } |
Unexecuted instantiation: atexitmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: faulthandler.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: posixmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: signalmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _tracemalloc.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _collectionsmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _iomodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: iobase.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: fileio.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: bytesio.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: bufferedio.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: textio.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: stringio.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: itertoolsmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: sre.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _threadmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: timemodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _weakref.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _abc.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _functoolsmodule.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: _operator.c:_PyGCHead_SET_FINALIZED Unexecuted instantiation: deepfreeze.c:_PyGCHead_SET_FINALIZED |
83 | |
84 | static inline int _PyGC_FINALIZED(PyObject *op) { |
85 | PyGC_Head *gc = _Py_AS_GC(op); |
86 | return _PyGCHead_FINALIZED(gc); |
87 | } Unexecuted instantiation: myreadline.c:_PyGC_FINALIZED Unexecuted instantiation: tokenizer.c:_PyGC_FINALIZED Unexecuted instantiation: abstract.c:_PyGC_FINALIZED Unexecuted instantiation: boolobject.c:_PyGC_FINALIZED Unexecuted instantiation: bytearrayobject.c:_PyGC_FINALIZED Unexecuted instantiation: bytesobject.c:_PyGC_FINALIZED Unexecuted instantiation: call.c:_PyGC_FINALIZED Unexecuted instantiation: cellobject.c:_PyGC_FINALIZED Unexecuted instantiation: classobject.c:_PyGC_FINALIZED Unexecuted instantiation: codeobject.c:_PyGC_FINALIZED Unexecuted instantiation: complexobject.c:_PyGC_FINALIZED Unexecuted instantiation: descrobject.c:_PyGC_FINALIZED Unexecuted instantiation: enumobject.c:_PyGC_FINALIZED Unexecuted instantiation: exceptions.c:_PyGC_FINALIZED Unexecuted instantiation: genericaliasobject.c:_PyGC_FINALIZED Unexecuted instantiation: genobject.c:_PyGC_FINALIZED Unexecuted instantiation: fileobject.c:_PyGC_FINALIZED Unexecuted instantiation: floatobject.c:_PyGC_FINALIZED Unexecuted instantiation: frameobject.c:_PyGC_FINALIZED Unexecuted instantiation: funcobject.c:_PyGC_FINALIZED Unexecuted instantiation: interpreteridobject.c:_PyGC_FINALIZED Unexecuted instantiation: iterobject.c:_PyGC_FINALIZED Unexecuted instantiation: listobject.c:_PyGC_FINALIZED Unexecuted instantiation: longobject.c:_PyGC_FINALIZED Unexecuted instantiation: dictobject.c:_PyGC_FINALIZED Unexecuted instantiation: odictobject.c:_PyGC_FINALIZED Unexecuted instantiation: memoryobject.c:_PyGC_FINALIZED Unexecuted instantiation: methodobject.c:_PyGC_FINALIZED Unexecuted instantiation: moduleobject.c:_PyGC_FINALIZED Line | Count | Source | 84 | static inline int _PyGC_FINALIZED(PyObject *op) { | 85 | PyGC_Head *gc = _Py_AS_GC(op); | 86 | return _PyGCHead_FINALIZED(gc); | 87 | } |
Unexecuted instantiation: rangeobject.c:_PyGC_FINALIZED Unexecuted instantiation: setobject.c:_PyGC_FINALIZED Unexecuted instantiation: sliceobject.c:_PyGC_FINALIZED Unexecuted instantiation: structseq.c:_PyGC_FINALIZED Unexecuted instantiation: tupleobject.c:_PyGC_FINALIZED Unexecuted instantiation: typeobject.c:_PyGC_FINALIZED Unexecuted instantiation: unicodeobject.c:_PyGC_FINALIZED Unexecuted instantiation: unionobject.c:_PyGC_FINALIZED Unexecuted instantiation: weakrefobject.c:_PyGC_FINALIZED Unexecuted instantiation: _warnings.c:_PyGC_FINALIZED Unexecuted instantiation: Python-ast.c:_PyGC_FINALIZED Unexecuted instantiation: ast.c:_PyGC_FINALIZED Unexecuted instantiation: ast_opt.c:_PyGC_FINALIZED Unexecuted instantiation: ast_unparse.c:_PyGC_FINALIZED Unexecuted instantiation: bltinmodule.c:_PyGC_FINALIZED Unexecuted instantiation: ceval.c:_PyGC_FINALIZED Unexecuted instantiation: codecs.c:_PyGC_FINALIZED Unexecuted instantiation: compile.c:_PyGC_FINALIZED Unexecuted instantiation: context.c:_PyGC_FINALIZED Unexecuted instantiation: errors.c:_PyGC_FINALIZED Unexecuted instantiation: frame.c:_PyGC_FINALIZED Unexecuted instantiation: frozenmain.c:_PyGC_FINALIZED Unexecuted instantiation: getargs.c:_PyGC_FINALIZED Unexecuted instantiation: hamt.c:_PyGC_FINALIZED Unexecuted instantiation: import.c:_PyGC_FINALIZED Unexecuted instantiation: importdl.c:_PyGC_FINALIZED Unexecuted instantiation: initconfig.c:_PyGC_FINALIZED Unexecuted instantiation: marshal.c:_PyGC_FINALIZED Unexecuted instantiation: mystrtoul.c:_PyGC_FINALIZED Unexecuted instantiation: preconfig.c:_PyGC_FINALIZED Unexecuted instantiation: pylifecycle.c:_PyGC_FINALIZED Unexecuted instantiation: pystate.c:_PyGC_FINALIZED Unexecuted instantiation: pythonrun.c:_PyGC_FINALIZED Unexecuted instantiation: specialize.c:_PyGC_FINALIZED Unexecuted instantiation: symtable.c:_PyGC_FINALIZED Unexecuted instantiation: sysmodule.c:_PyGC_FINALIZED Unexecuted instantiation: thread.c:_PyGC_FINALIZED Unexecuted instantiation: traceback.c:_PyGC_FINALIZED Unexecuted instantiation: formatter_unicode.c:_PyGC_FINALIZED Unexecuted instantiation: fileutils.c:_PyGC_FINALIZED Unexecuted instantiation: dynload_shlib.c:_PyGC_FINALIZED Unexecuted instantiation: main.c:_PyGC_FINALIZED Unexecuted instantiation: gcmodule.c:_PyGC_FINALIZED Unexecuted instantiation: atexitmodule.c:_PyGC_FINALIZED Unexecuted instantiation: faulthandler.c:_PyGC_FINALIZED Unexecuted instantiation: posixmodule.c:_PyGC_FINALIZED Unexecuted instantiation: signalmodule.c:_PyGC_FINALIZED Unexecuted instantiation: _tracemalloc.c:_PyGC_FINALIZED Unexecuted instantiation: _collectionsmodule.c:_PyGC_FINALIZED Unexecuted instantiation: _iomodule.c:_PyGC_FINALIZED Unexecuted instantiation: iobase.c:_PyGC_FINALIZED Unexecuted instantiation: fileio.c:_PyGC_FINALIZED Unexecuted instantiation: bytesio.c:_PyGC_FINALIZED Unexecuted instantiation: bufferedio.c:_PyGC_FINALIZED Unexecuted instantiation: textio.c:_PyGC_FINALIZED Unexecuted instantiation: stringio.c:_PyGC_FINALIZED Unexecuted instantiation: itertoolsmodule.c:_PyGC_FINALIZED Unexecuted instantiation: sre.c:_PyGC_FINALIZED Unexecuted instantiation: _threadmodule.c:_PyGC_FINALIZED Unexecuted instantiation: timemodule.c:_PyGC_FINALIZED Unexecuted instantiation: _weakref.c:_PyGC_FINALIZED Unexecuted instantiation: _abc.c:_PyGC_FINALIZED Unexecuted instantiation: _functoolsmodule.c:_PyGC_FINALIZED Unexecuted instantiation: _operator.c:_PyGC_FINALIZED Unexecuted instantiation: deepfreeze.c:_PyGC_FINALIZED |
88 | static inline void _PyGC_SET_FINALIZED(PyObject *op) { |
89 | PyGC_Head *gc = _Py_AS_GC(op); |
90 | _PyGCHead_SET_FINALIZED(gc); |
91 | } Unexecuted instantiation: myreadline.c:_PyGC_SET_FINALIZED Unexecuted instantiation: tokenizer.c:_PyGC_SET_FINALIZED Unexecuted instantiation: abstract.c:_PyGC_SET_FINALIZED Unexecuted instantiation: boolobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: bytearrayobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: bytesobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: call.c:_PyGC_SET_FINALIZED Unexecuted instantiation: cellobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: classobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: codeobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: complexobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: descrobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: enumobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: exceptions.c:_PyGC_SET_FINALIZED Unexecuted instantiation: genericaliasobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: genobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: fileobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: floatobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: frameobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: funcobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: interpreteridobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: iterobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: listobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: longobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: dictobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: odictobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: memoryobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: methodobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: moduleobject.c:_PyGC_SET_FINALIZED object.c:_PyGC_SET_FINALIZED Line | Count | Source | 88 | static inline void _PyGC_SET_FINALIZED(PyObject *op) { | 89 | PyGC_Head *gc = _Py_AS_GC(op); | 90 | _PyGCHead_SET_FINALIZED(gc); | 91 | } |
Unexecuted instantiation: rangeobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: setobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: sliceobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: structseq.c:_PyGC_SET_FINALIZED Unexecuted instantiation: tupleobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: typeobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: unicodeobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: unionobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: weakrefobject.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _warnings.c:_PyGC_SET_FINALIZED Unexecuted instantiation: Python-ast.c:_PyGC_SET_FINALIZED Unexecuted instantiation: ast.c:_PyGC_SET_FINALIZED Unexecuted instantiation: ast_opt.c:_PyGC_SET_FINALIZED Unexecuted instantiation: ast_unparse.c:_PyGC_SET_FINALIZED Unexecuted instantiation: bltinmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: ceval.c:_PyGC_SET_FINALIZED Unexecuted instantiation: codecs.c:_PyGC_SET_FINALIZED Unexecuted instantiation: compile.c:_PyGC_SET_FINALIZED Unexecuted instantiation: context.c:_PyGC_SET_FINALIZED Unexecuted instantiation: errors.c:_PyGC_SET_FINALIZED Unexecuted instantiation: frame.c:_PyGC_SET_FINALIZED Unexecuted instantiation: frozenmain.c:_PyGC_SET_FINALIZED Unexecuted instantiation: getargs.c:_PyGC_SET_FINALIZED Unexecuted instantiation: hamt.c:_PyGC_SET_FINALIZED Unexecuted instantiation: import.c:_PyGC_SET_FINALIZED Unexecuted instantiation: importdl.c:_PyGC_SET_FINALIZED Unexecuted instantiation: initconfig.c:_PyGC_SET_FINALIZED Unexecuted instantiation: marshal.c:_PyGC_SET_FINALIZED Unexecuted instantiation: mystrtoul.c:_PyGC_SET_FINALIZED Unexecuted instantiation: preconfig.c:_PyGC_SET_FINALIZED Unexecuted instantiation: pylifecycle.c:_PyGC_SET_FINALIZED Unexecuted instantiation: pystate.c:_PyGC_SET_FINALIZED Unexecuted instantiation: pythonrun.c:_PyGC_SET_FINALIZED Unexecuted instantiation: specialize.c:_PyGC_SET_FINALIZED Unexecuted instantiation: symtable.c:_PyGC_SET_FINALIZED Unexecuted instantiation: sysmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: thread.c:_PyGC_SET_FINALIZED Unexecuted instantiation: traceback.c:_PyGC_SET_FINALIZED Unexecuted instantiation: formatter_unicode.c:_PyGC_SET_FINALIZED Unexecuted instantiation: fileutils.c:_PyGC_SET_FINALIZED Unexecuted instantiation: dynload_shlib.c:_PyGC_SET_FINALIZED Unexecuted instantiation: main.c:_PyGC_SET_FINALIZED Unexecuted instantiation: gcmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: atexitmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: faulthandler.c:_PyGC_SET_FINALIZED Unexecuted instantiation: posixmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: signalmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _tracemalloc.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _collectionsmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _iomodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: iobase.c:_PyGC_SET_FINALIZED Unexecuted instantiation: fileio.c:_PyGC_SET_FINALIZED Unexecuted instantiation: bytesio.c:_PyGC_SET_FINALIZED Unexecuted instantiation: bufferedio.c:_PyGC_SET_FINALIZED Unexecuted instantiation: textio.c:_PyGC_SET_FINALIZED Unexecuted instantiation: stringio.c:_PyGC_SET_FINALIZED Unexecuted instantiation: itertoolsmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: sre.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _threadmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: timemodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _weakref.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _abc.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _functoolsmodule.c:_PyGC_SET_FINALIZED Unexecuted instantiation: _operator.c:_PyGC_SET_FINALIZED Unexecuted instantiation: deepfreeze.c:_PyGC_SET_FINALIZED |
92 | |
93 | |
94 | /* GC runtime state */ |
95 | |
96 | /* If we change this, we need to change the default value in the |
97 | signature of gc.collect. */ |
98 | #define NUM_GENERATIONS 3 |
99 | /* |
100 | NOTE: about untracking of mutable objects. |
101 | |
102 | Certain types of container cannot participate in a reference cycle, and |
103 | so do not need to be tracked by the garbage collector. Untracking these |
104 | objects reduces the cost of garbage collections. However, determining |
105 | which objects may be untracked is not free, and the costs must be |
106 | weighed against the benefits for garbage collection. |
107 | |
108 | There are two possible strategies for when to untrack a container: |
109 | |
110 | i) When the container is created. |
111 | ii) When the container is examined by the garbage collector. |
112 | |
113 | Tuples containing only immutable objects (integers, strings etc, and |
114 | recursively, tuples of immutable objects) do not need to be tracked. |
115 | The interpreter creates a large number of tuples, many of which will |
116 | not survive until garbage collection. It is therefore not worthwhile |
117 | to untrack eligible tuples at creation time. |
118 | |
119 | Instead, all tuples except the empty tuple are tracked when created. |
120 | During garbage collection it is determined whether any surviving tuples |
121 | can be untracked. A tuple can be untracked if all of its contents are |
122 | already not tracked. Tuples are examined for untracking in all garbage |
123 | collection cycles. It may take more than one cycle to untrack a tuple. |
124 | |
125 | Dictionaries containing only immutable objects also do not need to be |
126 | tracked. Dictionaries are untracked when created. If a tracked item is |
127 | inserted into a dictionary (either as a key or value), the dictionary |
128 | becomes tracked. During a full garbage collection (all generations), |
129 | the collector will untrack any dictionaries whose contents are not |
130 | tracked. |
131 | |
132 | The module provides the python function is_tracked(obj), which returns |
133 | the CURRENT tracking status of the object. Subsequent garbage |
134 | collections may change the tracking status of the object. |
135 | |
136 | Untracking of certain containers was introduced in issue #4688, and |
137 | the algorithm was refined in response to issue #14775. |
138 | */ |
139 | |
140 | struct gc_generation { |
141 | PyGC_Head head; |
142 | int threshold; /* collection threshold */ |
143 | int count; /* count of allocations or collections of younger |
144 | generations */ |
145 | }; |
146 | |
147 | /* Running stats per generation */ |
148 | struct gc_generation_stats { |
149 | /* total number of collections */ |
150 | Py_ssize_t collections; |
151 | /* total number of collected objects */ |
152 | Py_ssize_t collected; |
153 | /* total number of uncollectable objects (put into gc.garbage) */ |
154 | Py_ssize_t uncollectable; |
155 | }; |
156 | |
157 | struct _gc_runtime_state { |
158 | /* List of objects that still need to be cleaned up, singly linked |
159 | * via their gc headers' gc_prev pointers. */ |
160 | PyObject *trash_delete_later; |
161 | /* Current call-stack depth of tp_dealloc calls. */ |
162 | int trash_delete_nesting; |
163 | |
164 | /* Is automatic collection enabled? */ |
165 | int enabled; |
166 | int debug; |
167 | /* linked lists of container objects */ |
168 | struct gc_generation generations[NUM_GENERATIONS]; |
169 | PyGC_Head *generation0; |
170 | /* a permanent generation which won't be collected */ |
171 | struct gc_generation permanent_generation; |
172 | struct gc_generation_stats generation_stats[NUM_GENERATIONS]; |
173 | /* true if we are currently running the collector */ |
174 | int collecting; |
175 | /* list of uncollectable objects */ |
176 | PyObject *garbage; |
177 | /* a list of callbacks to be invoked when collection is performed */ |
178 | PyObject *callbacks; |
179 | /* This is the number of objects that survived the last full |
180 | collection. It approximates the number of long lived objects |
181 | tracked by the GC. |
182 | |
183 | (by "full collection", we mean a collection of the oldest |
184 | generation). */ |
185 | Py_ssize_t long_lived_total; |
186 | /* This is the number of objects that survived all "non-full" |
187 | collections, and are awaiting to undergo a full collection for |
188 | the first time. */ |
189 | Py_ssize_t long_lived_pending; |
190 | }; |
191 | |
192 | |
193 | extern void _PyGC_InitState(struct _gc_runtime_state *); |
194 | |
195 | extern Py_ssize_t _PyGC_CollectNoFail(PyThreadState *tstate); |
196 | |
197 | |
198 | // Functions to clear types free lists |
199 | extern void _PyTuple_ClearFreeList(PyInterpreterState *interp); |
200 | extern void _PyFloat_ClearFreeList(PyInterpreterState *interp); |
201 | extern void _PyList_ClearFreeList(PyInterpreterState *interp); |
202 | extern void _PyDict_ClearFreeList(PyInterpreterState *interp); |
203 | extern void _PyAsyncGen_ClearFreeLists(PyInterpreterState *interp); |
204 | extern void _PyContext_ClearFreeList(PyInterpreterState *interp); |
205 | |
206 | #ifdef __cplusplus |
207 | } |
208 | #endif |
209 | #endif /* !Py_INTERNAL_GC_H */ |