Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b1431ef

Browse files
committed
Add gc shared bits
1 parent 1390796 commit b1431ef

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

Include/internal/pycore_gc.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ static inline PyObject* _Py_FROM_GC(PyGC_Head *gc) {
4343
# define _PyGC_BITS_FINALIZED (2)
4444
# define _PyGC_BITS_UNREACHABLE (4)
4545
# define _PyGC_BITS_FROZEN (8)
46+
# define _PyGC_BITS_SHARED (16)
4647
#endif
4748

4849
/* True if the object is currently tracked by the GC. */
@@ -68,6 +69,15 @@ static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) {
6869
return 1;
6970
}
7071

72+
static inline int _PyObject_GC_IS_SHARED(PyObject *op) {
73+
return (op->ob_gc_bits & _PyGC_BITS_SHARED) != 0;
74+
}
75+
#define _PyObject_GC_IS_SHARED(op) _PyObject_GC_IS_SHARED(_Py_CAST(PyObject*, op))
76+
77+
static inline int _PyObject_GC_SET_SHARED(PyObject *op) {
78+
return op->ob_gc_bits |= _PyGC_BITS_SHARED;
79+
}
80+
#define _PyObject_GC_SET_SHARED(op) _PyObject_GC_SET_SHARED(_Py_CAST(PyObject*, op))
7181

7282
/* Bit flags for _gc_prev */
7383
/* Bit 0 is set when tp_finalize is called */

0 commit comments

Comments
 (0)