Commit Graph

3 Commits

Author SHA1 Message Date
Sam Atkins
8ffac507c6 LibGC: Include CellAllocator.h in HeapVector.h
Next commit adds a user of this which doesn't already have the
GC_DECLARE_ALLOCATOR() macro available.
2026-02-17 07:40:03 -05:00
Luke Wilde
babfd70ca7 LibGC: Enforce that a Cell type must declare the allocator to use
This ensures that we are explicitly declaring the allocator to use when
allocating a cell(-inheriting) type, instead of silently falling back
to size-based allocation.

Since this is done in allocate_cell, this will only be detected for
types that are actively being allocated. However, since that means
they're _not_ being allocated, that means it's safe to not declare
an allocator to use for those. For example, the base TypedArray<T>,
which is never directly allocated and only the defined specializations
are ever allocated.
2026-01-20 12:00:11 +01:00
Andreas Kling
0ac48b6e08 LibGC: Add GC::HeapVector<T>, a fully GC-aware vector container
HeapVector inherits from GC::Cell, and thus participates in tracing
garbage collection. It's not a standalone vector of roots like
RootVector or ConservativeVector. It must be marked for its elements to
be marked.
2025-12-25 20:21:37 +01:00