1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 05:27:14 +09:00
ladybird/Libraries/LibGC
Andreas Kling 51a91771b8 LibJS+LibGC: Run FinalizationRegistry cleanup host hook *after* GC
Before this change, it was possible for a second GC to get triggered
in the middle of a first GC, due to allocations happening in the
FinalizationRegistry cleanup host hook. To avoid this causing problems,
we add a "post-GC task" mechanism and use that to invoke the host hook
once all other GC activity is finished, and we've unset the "collecting
garbage" flag.

Note that the test included here only fails reliably when running with
the -g flag (collect garbage after each allocation).

Fixes #3051
2025-01-23 12:10:21 +01:00
..
BlockAllocator.cpp
BlockAllocator.h
Cell.cpp
Cell.h
CellAllocator.cpp
CellAllocator.h
CMakeLists.txt LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
ConservativeVector.cpp
ConservativeVector.h Everywhere: Include HashMap only where it's actually used 2024-12-09 12:31:16 +01:00
DeferGC.h LibGC: Expose deferred state publicly, annotate DeferGC for Swift 2024-11-19 14:32:11 -07:00
ForeignCell.cpp LibGC: Add a ForeignCell class for ownership of non-C++ objects 2024-11-19 14:32:11 -07:00
ForeignCell.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
Forward.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
Function.h LibGC: Mark GC::Function and create_function as ESCAPING 2024-12-10 07:13:00 +01:00
Heap+Swift.swift LibGC: Add Swift bindings to the GC heap 2024-11-19 14:32:11 -07:00
Heap.cpp LibJS+LibGC: Run FinalizationRegistry cleanup host hook *after* GC 2025-01-23 12:10:21 +01:00
Heap.h LibJS+LibGC: Run FinalizationRegistry cleanup host hook *after* GC 2025-01-23 12:10:21 +01:00
HeapBlock.cpp
HeapBlock.h
HeapRoot.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
Internals.h
NanBoxedValue.h
Ptr.h
Root.cpp
Root.h LibJS: Stop lazily coercing numeric PropertyKeys 2024-12-01 10:42:49 +01:00
RootVector.cpp LibGC: Rename remaining occurrence of marked vector 2025-01-02 16:22:29 -07:00
RootVector.h LibGC: Add ability to construct RootVector<T> from a span of T 2025-01-21 17:02:51 +01:00
WeakContainer.cpp
WeakContainer.h