/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v25.8.1
src/cppgc_helpers.cc
37 строк
847 B
Joyee Cheung
src: track cppgc wrappers with a list in Realm
19 май 2025, 23:56
Не верифицирован
19 май 2025, 23:56
d2a1369
Код
Авторство
О чём код?
#include "cppgc_helpers.h" #include "env-inl.h" namespace node { void CppgcWrapperList::Cleanup() { for (auto node : *this) { CppgcMixin* ptr = node->persistent.Get(); if (ptr != nullptr) { ptr->Finalize(); } } } void CppgcWrapperList::MemoryInfo(MemoryTracker* tracker) const { for (auto node : *this) { CppgcMixin* ptr = node->persistent.Get(); if (ptr != nullptr) { tracker->Track(ptr); } } } void CppgcWrapperList::PurgeEmpty() { for (auto weak_it = begin(); weak_it != end();) { CppgcWrapperListNode* node = *weak_it; auto next_it = ++weak_it; // The underlying cppgc wrapper has already been garbage collected. // Remove it from the list. if (!node->persistent) { node->persistent.Clear(); delete node; } weak_it = next_it; } } } // namespace node