| Index: runtime/vm/isolate.cc
|
| diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
|
| index 50df955d613eb4b7d7baccc77390012d4184bae5..b247e566b8934220435819e1734e2fa7738b14c7 100644
|
| --- a/runtime/vm/isolate.cc
|
| +++ b/runtime/vm/isolate.cc
|
| @@ -36,6 +36,7 @@
|
| #include "vm/symbols.h"
|
| #include "vm/tags.h"
|
| #include "vm/thread_interrupter.h"
|
| +#include "vm/thread_registry.h"
|
| #include "vm/timeline.h"
|
| #include "vm/timer.h"
|
| #include "vm/visitor.h"
|
| @@ -622,9 +623,9 @@ void BaseIsolate::AssertCurrentThreadIsMutator() const {
|
| object##_handle_(NULL),
|
|
|
| Isolate::Isolate(const Dart_IsolateFlags& api_flags)
|
| - : mutator_thread_(NULL),
|
| - vm_tag_(0),
|
| + : vm_tag_(0),
|
| store_buffer_(new StoreBuffer()),
|
| + thread_registry_(new ThreadRegistry()),
|
| message_notify_callback_(NULL),
|
| name_(NULL),
|
| debugger_name_(NULL),
|
| @@ -726,6 +727,7 @@ Isolate::~Isolate() {
|
| compiler_stats_ = NULL;
|
| }
|
| RemoveTimelineEventRecorder();
|
| + delete thread_registry_;
|
| }
|
|
|
|
|
| @@ -1532,9 +1534,6 @@ void Isolate::VisitObjectPointers(ObjectPointerVisitor* visitor,
|
| // Visit objects in per isolate stubs.
|
| StubCode::VisitObjectPointers(visitor);
|
|
|
| - // Visit objects in zones.
|
| - current_zone()->VisitObjectPointers(visitor);
|
| -
|
| // Visit objects in isolate specific handles area.
|
| reusable_handles_.VisitObjectPointers(visitor);
|
|
|
| @@ -1571,6 +1570,9 @@ void Isolate::VisitObjectPointers(ObjectPointerVisitor* visitor,
|
| if (deopt_context() != NULL) {
|
| deopt_context()->VisitObjectPointers(visitor);
|
| }
|
| +
|
| + // Visit objects in thread registry (e.g., handles in zones).
|
| + thread_registry()->VisitObjectPointers(visitor);
|
| }
|
|
|
|
|
|
|