51 P->Prev->Next =
P->Next;
53 P->Next->Prev =
P->Prev;
58 (
reinterpret_cast<DeadBlock *
>(
this + 1) - 1)->free();
76 Old->Pointee =
nullptr;
95 : Root(Root), B(Blk->Desc, Blk->
IsStatic, Blk->IsExtern,
true) {
110void DeadBlock::free() {
A memory block, either on the stack or in the heap.
void addPointer(Pointer *P)
Pointer chain management.
void replacePointer(Pointer *Old, Pointer *New)
bool hasPointer(const Pointer *P) const
void removePointer(Pointer *P)
void cleanup()
Deletes a dead block at the end of its lifetime.
bool IsStatic
Flag indicating if the block has static storage duration.
Pointer * Pointers
Start of the chain of pointers.
bool IsDead
Flag indicating if the pointer is dead.
Descriptor for a dead block.
DeadBlock(DeadBlock *&Root, Block *Blk)
Copies the block.
A pointer to a memory block, live or dead.