Chromium Code Reviews| Index: runtime/vm/verifier.cc |
| diff --git a/runtime/vm/verifier.cc b/runtime/vm/verifier.cc |
| index adb53fa8df6176be2bef0f246d64c2c0eb2964d9..f1cd7f47d275a76e922ad087095684893430394a 100644 |
| --- a/runtime/vm/verifier.cc |
| +++ b/runtime/vm/verifier.cc |
| @@ -41,7 +41,8 @@ void VerifyPointersVisitor::VisitPointers(RawObject** first, RawObject** last) { |
| void VerifyWeakPointersVisitor::VisitHandle(uword addr) { |
| - WeakPersistentHandle* handle = reinterpret_cast<WeakPersistentHandle*>(addr); |
| + FinalizablePersistentHandle* handle = |
| + reinterpret_cast<FinalizablePersistentHandle*>(addr); |
| RawObject* raw_obj = handle->raw(); |
| visitor_->VisitPointer(&raw_obj); |
| } |
| @@ -51,10 +52,14 @@ void VerifyPointersVisitor::VerifyPointers() { |
| NoGCScope no_gc; |
| Isolate* isolate = Isolate::Current(); |
| VerifyPointersVisitor visitor; |
| + // Visit all strongly reachable objects. |
| isolate->VisitObjectPointers(&visitor, |
| + false, // skip prologue weak handles |
|
siva
2012/03/09 21:48:41
Why do we want to skip verification of prolog weak
cshapiro
2012/03/13 23:06:43
We don't. We just defer the visit until later. M
|
| StackFrameIterator::kValidateFrames); |
| VerifyWeakPointersVisitor weak_visitor(&visitor); |
| - isolate->VisitWeakPersistentHandles(&weak_visitor); |
| + // Visit weak handles and prologue weak handles. |
| + isolate->VisitWeakPersistentHandles(&weak_visitor, |
| + true); |
| } |
| } // namespace dart |