From bef1ff879886a09acc69cbc6583337535719897c Mon Sep 17 00:00:00 2001 From: Archkon <180910180+Archkon@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:37:37 +0800 Subject: [PATCH] src: delete cppgc tracking nodes during Realm cleanup Delete CppgcWrapperListNode instances after finalizing their wrappers to prevent native memory leaks when a Realm is destroyed while wrappers remain alive. Signed-off-by: Archkon <180910180+Archkon@users.noreply.github.com> --- src/cppgc_helpers.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cppgc_helpers.cc b/src/cppgc_helpers.cc index 7c557a822d20..2453658913a9 100644 --- a/src/cppgc_helpers.cc +++ b/src/cppgc_helpers.cc @@ -4,11 +4,14 @@ namespace node { void CppgcWrapperList::Cleanup() { - for (auto node : *this) { + for (auto it = begin(); it != end();) { + CppgcWrapperListNode* node = *it; + ++it; CppgcMixin* ptr = node->persistent.Get(); if (ptr != nullptr) { ptr->Finalize(); } + delete node; } }