| Index: runtime/vm/isolate.cc
|
| diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
|
| index 5ee061a9ffd8678d5fc1df12b9f437ebc8a033f6..f84b00ad1c6403f815c4b9702b89e9f5431318ec 100644
|
| --- a/runtime/vm/isolate.cc
|
| +++ b/runtime/vm/isolate.cc
|
| @@ -794,10 +794,7 @@ Isolate::Isolate(const Dart_IsolateFlags& api_flags)
|
| compilation_allowed_(true),
|
| cha_(NULL),
|
| next_(NULL),
|
| - pause_loop_monitor_(NULL),
|
| - REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS)
|
| - REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_SCOPE_INIT)
|
| - reusable_handles_() {
|
| + pause_loop_monitor_(NULL) {
|
| flags_.CopyFrom(api_flags);
|
| Thread::Current()->set_vm_tag(VMTag::kEmbedderTagId);
|
| set_user_tag(UserTags::kDefaultUserTag);
|
| @@ -882,12 +879,6 @@ Isolate* Isolate::Init(const char* name_prefix,
|
| // the current isolate.
|
| Thread::EnterIsolate(result);
|
|
|
| - // Setup the isolate specific resuable handles.
|
| -#define REUSABLE_HANDLE_ALLOCATION(object) \
|
| - result->object##_handle_ = result->AllocateReusableHandle<object>();
|
| - REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_ALLOCATION)
|
| -#undef REUSABLE_HANDLE_ALLOCATION
|
| -
|
| // Setup the isolate message handler.
|
| MessageHandler* handler = new IsolateMessageHandler(result);
|
| ASSERT(handler != NULL);
|
| @@ -1580,13 +1571,13 @@ void Isolate::PrintInvokedFunctions() {
|
|
|
| class FinalizeWeakPersistentHandlesVisitor : public HandleVisitor {
|
| public:
|
| - FinalizeWeakPersistentHandlesVisitor() : HandleVisitor(Isolate::Current()) {
|
| + FinalizeWeakPersistentHandlesVisitor() : HandleVisitor(Thread::Current()) {
|
| }
|
|
|
| void VisitHandle(uword addr) {
|
| FinalizablePersistentHandle* handle =
|
| reinterpret_cast<FinalizablePersistentHandle*>(addr);
|
| - handle->UpdateUnreachable(I);
|
| + handle->UpdateUnreachable(thread()->isolate());
|
| }
|
|
|
| private:
|
| @@ -1771,9 +1762,6 @@ void Isolate::VisitObjectPointers(ObjectPointerVisitor* visitor,
|
| // Visit objects in per isolate stubs.
|
| StubCode::VisitObjectPointers(visitor);
|
|
|
| - // Visit objects in isolate specific handles area.
|
| - reusable_handles_.VisitObjectPointers(visitor);
|
| -
|
| // Visit the dart api state for all local and persistent handles.
|
| if (api_state() != NULL) {
|
| api_state()->VisitObjectPointers(visitor, visit_prologue_weak_handles);
|
| @@ -2313,14 +2301,6 @@ void Isolate::EnableIsolateCreation() {
|
| }
|
|
|
|
|
| -template<class C>
|
| -C* Isolate::AllocateReusableHandle() {
|
| - C* handle = reinterpret_cast<C*>(reusable_handles_.AllocateScopedHandle());
|
| - C::initializeHandle(handle, C::null());
|
| - return handle;
|
| -}
|
| -
|
| -
|
| void Isolate::KillLocked(LibMsgId msg_id) {
|
| Dart_CObject kill_msg;
|
| Dart_CObject* list_values[4];
|
|
|