Chromium Code Reviews| Index: runtime/vm/verifier.cc |
| diff --git a/runtime/vm/verifier.cc b/runtime/vm/verifier.cc |
| index 0d62a583bbdb9e317985fd0501a4688aa4ae7063..733a7b7b322dbeabc241e3c18f77975cf1e1c29d 100644 |
| --- a/runtime/vm/verifier.cc |
| +++ b/runtime/vm/verifier.cc |
| @@ -6,6 +6,7 @@ |
| #include "vm/assert.h" |
| #include "vm/dart.h" |
| +#include "vm/dart_api_state.h" |
| #include "vm/freelist.h" |
| #include "vm/heap.h" |
| #include "vm/isolate.h" |
| @@ -39,11 +40,20 @@ void VerifyPointersVisitor::VisitPointers(RawObject** first, RawObject** last) { |
| } |
| +void VerifyWeakPointersVisitor::VisitHandle(uword* addr) { |
| + WeakPersistentHandle* handle = reinterpret_cast<WeakPersistentHandle*>(addr); |
| + RawObject* raw_obj = handle->raw(); |
| + visitor_->VisitPointer(&raw_obj); |
| +} |
| + |
| + |
| void VerifyPointersVisitor::VerifyPointers() { |
| NoGCScope no_gc; |
| VerifyPointersVisitor visitor; |
| Isolate::Current()->VisitObjectPointers(&visitor, |
|
Ivan Posva
2012/01/12 23:30:38
Isolate* isolate = Isolate::Current();
isolate->Vi
cshapiro
2012/01/13 01:30:03
Thanks, much cleaner. Done.
|
| StackFrameIterator::kValidateFrames); |
| + VerifyWeakPointersVisitor weak_visitor(&visitor); |
| + Isolate::Current()->VisitWeakPersistentHandles(&weak_visitor); |
| } |
| } // namespace dart |