mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08:00
Replace _PyGC_REFS macros with higher level macros (GH-6852)
Only gcmodule.c uses _PyGC_REFS* macros now. This makes easy to read GC code.
This commit is contained in:
@@ -3215,8 +3215,7 @@ slot_tp_del(PyObject *self)
|
||||
_Py_NewReference(self);
|
||||
self->ob_refcnt = refcnt;
|
||||
}
|
||||
assert(!PyType_IS_GC(Py_TYPE(self)) ||
|
||||
_Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
|
||||
assert(!PyType_IS_GC(Py_TYPE(self)) || _PyObject_GC_IS_TRACKED(self));
|
||||
/* If Py_REF_DEBUG, _Py_NewReference bumped _Py_RefTotal, so
|
||||
* we need to undo that. */
|
||||
_Py_DEC_REFTOTAL;
|
||||
|
||||
@@ -316,9 +316,7 @@ PyObject_CallFinalizerFromDealloc(PyObject *self)
|
||||
_Py_NewReference(self);
|
||||
self->ob_refcnt = refcnt;
|
||||
|
||||
if (PyType_IS_GC(Py_TYPE(self))) {
|
||||
assert(_PyGC_REFS(self) != _PyGC_REFS_UNTRACKED);
|
||||
}
|
||||
assert(!PyType_IS_GC(Py_TYPE(self)) || _PyObject_GC_IS_TRACKED(self));
|
||||
/* If Py_REF_DEBUG, _Py_NewReference bumped _Py_RefTotal, so
|
||||
* we need to undo that. */
|
||||
_Py_DEC_REFTOTAL;
|
||||
@@ -2095,7 +2093,7 @@ void
|
||||
_PyTrash_deposit_object(PyObject *op)
|
||||
{
|
||||
assert(PyObject_IS_GC(op));
|
||||
assert(_PyGC_REFS(op) == _PyGC_REFS_UNTRACKED);
|
||||
assert(!_PyObject_GC_IS_TRACKED(op));
|
||||
assert(op->ob_refcnt == 0);
|
||||
_Py_AS_GC(op)->gc.gc_prev = (PyGC_Head *)_PyRuntime.gc.trash_delete_later;
|
||||
_PyRuntime.gc.trash_delete_later = op;
|
||||
@@ -2107,7 +2105,7 @@ _PyTrash_thread_deposit_object(PyObject *op)
|
||||
{
|
||||
PyThreadState *tstate = PyThreadState_GET();
|
||||
assert(PyObject_IS_GC(op));
|
||||
assert(_PyGC_REFS(op) == _PyGC_REFS_UNTRACKED);
|
||||
assert(!_PyObject_GC_IS_TRACKED(op));
|
||||
assert(op->ob_refcnt == 0);
|
||||
_Py_AS_GC(op)->gc.gc_prev = (PyGC_Head *) tstate->trash_delete_later;
|
||||
tstate->trash_delete_later = op;
|
||||
|
||||
Reference in New Issue
Block a user