Lines Matching refs:_gc_next

60 // Lowest bit of _gc_next is used for UNREACHABLE flag.
144 GEN.head._gc_next = (uintptr_t)&GEN.head; \
203 _gc_next values
206 _gc_next takes these values:
237 list->_gc_next = (uintptr_t)list;
243 return (list->_gc_next == (uintptr_t)list);
271 node->_gc_next = 0; /* object is not currently tracked */
376 assert((head->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
398 PyGC_Head *truenext = (PyGC_Head *)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
402 assert((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value);
504 assert(gc->_gc_next != 0);
506 if (gc->_gc_next & NEXT_MASK_UNREACHABLE) {
516 PyGC_Head *next = (PyGC_Head*)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
518 prev->_gc_next & NEXT_MASK_UNREACHABLE);
520 next->_gc_next & NEXT_MASK_UNREACHABLE);
521 prev->_gc_next = gc->_gc_next; // copy NEXT_MASK_UNREACHABLE
554 * But _gc_next in unreachable list has NEXT_MASK_UNREACHABLE flag.
587 // NOTE: visit_reachable may change gc->_gc_next when
608 prev->_gc_next = gc->_gc_next;
618 last->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)gc);
620 gc->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)unreachable);
623 gc = (PyGC_Head*)prev->_gc_next;
628 unreachable->_gc_next &= ~NEXT_MASK_UNREACHABLE;
670 * from _gc_next in unreachable.
676 assert((unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
684 _PyObject_ASSERT(op, gc->_gc_next & NEXT_MASK_UNREACHABLE);
685 gc->_gc_next &= ~NEXT_MASK_UNREACHABLE;
686 next = (PyGC_Head*)gc->_gc_next;
702 assert((unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
704 _PyObject_ASSERT((PyObject*)FROM_GC(gc), gc->_gc_next & NEXT_MASK_UNREACHABLE);
705 gc->_gc_next &= ~NEXT_MASK_UNREACHABLE;
706 next = (PyGC_Head*)gc->_gc_next;
875 gc = (PyGC_Head*)wrcb_to_call._gc_next;
901 if (wrcb_to_call._gc_next == (uintptr_t)gc) {
2260 g->_gc_next = 0;