mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-27 02:20:17 +00:00
This works very similarly to MarkedVector<T>, but instead of expecting
T to be Value or a GC-allocated pointer type, T can be anything.
Every pointer-sized value in the vector's storage will be checked during
conservative root scanning.
In other words, this allows you to put something like this in a
ConservativeVector<Foo> and it will be protected from GC:
struct Foo {
i64 number;
Value some_value;
GCPtr<Object> some_object;
};
|
||
|---|---|---|
| .. | ||
| BlockAllocator.cpp | ||
| BlockAllocator.h | ||
| Cell.cpp | ||
| Cell.h | ||
| CellAllocator.cpp | ||
| CellAllocator.h | ||
| ConservativeVector.cpp | ||
| ConservativeVector.h | ||
| DeferGC.h | ||
| GCPtr.h | ||
| Handle.cpp | ||
| Handle.h | ||
| Heap.cpp | ||
| Heap.h | ||
| HeapBlock.cpp | ||
| HeapBlock.h | ||
| HeapFunction.h | ||
| HeapRoot.h | ||
| Internals.h | ||
| MarkedVector.cpp | ||
| MarkedVector.h | ||