1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:47:35 +00:00

LibJS: Actually invoke the type-isolating cell allocators

Due to a `requires` mistake, we were always using the fallback
size-based cell allocators.

Also, now that we start using them, make them NeverDestroyed so
we don't try to deallocate them on program exit.
This commit is contained in:
Andreas Kling 2023-12-23 20:00:21 +01:00
parent f953a70965
commit 6c1fcc5f7e
2 changed files with 4 additions and 3 deletions

View file

@ -101,9 +101,9 @@ private:
Cell* allocate_cell()
{
will_allocate(sizeof(T));
if constexpr (requires { T::cell_allocator.allocate_cell(*this); }) {
if constexpr (requires { T::cell_allocator.allocator.get().allocate_cell(*this); }) {
if constexpr (IsSame<T, typename decltype(T::cell_allocator)::CellType>) {
return T::cell_allocator.allocate_cell(*this);
return T::cell_allocator.allocator.get().allocate_cell(*this);
}
}
return allocator_for_size(sizeof(T)).allocate_cell(*this);