diff --git a/runtime/mem/ecma_reference_processor.cpp b/runtime/mem/ecma_reference_processor.cpp index 8762f45d4dd945ac3dc9f193dc7cacc019d7dd6b..648dbb0fb750fd2393aee08e55755713c911fe3c 100644 --- a/runtime/mem/ecma_reference_processor.cpp +++ b/runtime/mem/ecma_reference_processor.cpp @@ -115,7 +115,7 @@ void EcmaReferenceProcessor::HandleReference([[maybe_unused]] GC *gc, [[maybe_un void EcmaReferenceProcessor::ProcessReferences([[maybe_unused]] bool concurrent, [[maybe_unused]] bool clear_soft_references, [[maybe_unused]] GCPhase gc_phase, - [[maybe_unused]] const mem::GC::ReferenceClearPredicateT &pred) + const mem::GC::ReferenceClearPredicateT &pred) { panda::ecmascript::JSThread *thread = vm_->GetAssociatedJSThread(); while (!dyn_weak_references_.empty()) { @@ -166,8 +166,8 @@ void EcmaReferenceProcessor::ProcessReferences([[maybe_unused]] bool concurrent, } panda::ecmascript::WeakRootVisitor gcUpdateWeak = - [this](panda::ecmascript::TaggedObject *header) -> panda::ecmascript::TaggedObject * { - if (gc_->InGCSweepRange(header) && !gc_->IsMarked(header)) { + [this, pred](panda::ecmascript::TaggedObject *header) -> panda::ecmascript::TaggedObject * { + if (pred(header) && !gc_->IsMarked(header)) { return nullptr; }