LibGC: Only call finalize() on types that override finalize()

This dramatically cuts down on time spent in the GC's finalizer pass,
since most types don't override finalize().
This commit is contained in:
Andreas Kling
2025-12-29 01:33:12 +01:00
committed by Andreas Kling
parent 75ad452099
commit 2ac363dcba
Notes: github-actions[bot] 2026-01-07 19:52:22 +00:00
44 changed files with 105 additions and 22 deletions

View File

@@ -17,6 +17,8 @@ class IDBTransactionObserver final : public GC::Cell {
GC_DECLARE_ALLOCATOR(IDBTransactionObserver);
public:
static constexpr bool OVERRIDES_FINALIZE = true;
virtual ~IDBTransactionObserver();
[[nodiscard]] GC::Ptr<GC::Function<void()>> transaction_finished_observer() const { return m_transaction_finished_observer; }