Lines Matching refs:NEXT_MASK_UNREACHABLE
69 #define NEXT_MASK_UNREACHABLE (1)
214 NEXT_MASK_UNREACHABLE flag described below.
216 NEXT_MASK_UNREACHABLE
369 // - The objects' PREV_MASK_COLLECTING and NEXT_MASK_UNREACHABLE flags are all
376 assert((head->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
385 next_value = NEXT_MASK_UNREACHABLE;
389 next_value = NEXT_MASK_UNREACHABLE;
398 PyGC_Head *truenext = (PyGC_Head *)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
402 assert((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value);
506 if (gc->_gc_next & NEXT_MASK_UNREACHABLE) {
514 // don't work right in the presence of NEXT_MASK_UNREACHABLE flags.
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.
568 * unreachable now, and have NEXT_MASK_UNREACHABLE. All objects to the
611 // NEXT_MASK_UNREACHABLE here.
614 // NEXT_MASK_UNREACHABLE flag, we set it unconditionally.
618 last->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)gc);
620 gc->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)unreachable);
628 unreachable->_gc_next &= ~NEXT_MASK_UNREACHABLE;
669 * This function also removes NEXT_MASK_UNREACHABLE flag
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;
699 assert(((uintptr_t)unreachable & NEXT_MASK_UNREACHABLE) == 0);
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;
1086 IMPORTANT: This function leaves 'unreachable' with the NEXT_MASK_UNREACHABLE
1248 // NEXT_MASK_UNREACHABLE is cleared here.