From 62ffbdc0f30b6ea70ab0381da479ccfa64e2b569 Mon Sep 17 00:00:00 2001 From: Gugu8 Date: Mon, 7 Sep 2026 14:37:50 +1200 Subject: [PATCH] Update cppgc_helpers.cc --- src/cppgc_helpers.cc | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/cppgc_helpers.cc b/src/cppgc_helpers.cc index 7c557a822d20..d26854dd3290 100644 --- a/src/cppgc_helpers.cc +++ b/src/cppgc_helpers.cc @@ -5,8 +5,7 @@ namespace node { void CppgcWrapperList::Cleanup() { for (auto node : *this) { - CppgcMixin* ptr = node->persistent.Get(); - if (ptr != nullptr) { + if (auto* ptr = node->persistent.Get()) { ptr->Finalize(); } } @@ -14,8 +13,7 @@ void CppgcWrapperList::Cleanup() { void CppgcWrapperList::MemoryInfo(MemoryTracker* tracker) const { for (auto node : *this) { - CppgcMixin* ptr = node->persistent.Get(); - if (ptr != nullptr) { + if (auto* ptr = node->persistent.Get()) { // TODO(addaleax): Add weak edges instead of no edges once // https://github.com/v8/v8/commit/e37cadf1143a8c5bbe44c0408186b5a26cc23863 // is available for us @@ -25,16 +23,16 @@ void CppgcWrapperList::MemoryInfo(MemoryTracker* tracker) const { } void CppgcWrapperList::PurgeEmpty() { - for (auto weak_it = begin(); weak_it != end();) { - CppgcWrapperListNode* node = *weak_it; - auto next_it = ++weak_it; + for (auto it = begin(); it != end(); ) { + CppgcWrapperListNode* node = *it; + ++it; // Advance the iterator BEFORE deletion to avoid dangling references + // The underlying cppgc wrapper has already been garbage collected. // Remove it from the list. if (!node->persistent) { - node->persistent.Clear(); - delete node; + delete node; } - weak_it = next_it; } } + } // namespace node