Index: runtime/vm/service_isolate.cc |
diff --git a/runtime/vm/service_isolate.cc b/runtime/vm/service_isolate.cc |
index 3e0358638dd86d267d51f39ce54ca9142c68f597..2068e4027192c70536171c32266089a9b34bcd5d 100644 |
--- a/runtime/vm/service_isolate.cc |
+++ b/runtime/vm/service_isolate.cc |
@@ -22,6 +22,9 @@ |
namespace dart { |
+#define Z (T->zone()) |
+ |
+ |
DEFINE_FLAG(bool, trace_service, false, "Trace VM service requests."); |
DEFINE_FLAG(bool, trace_service_pause_events, false, |
"Trace VM service isolate pause events."); |
@@ -526,12 +529,12 @@ void ServiceIsolate::SetLoadPort(Dart_Port port) { |
} |
-void ServiceIsolate::MaybeInjectVMServiceLibrary(Isolate* isolate) { |
- Thread* thread = Thread::Current(); |
- ASSERT(isolate == thread->isolate()); |
- ASSERT(isolate != NULL); |
- ASSERT(isolate->name() != NULL); |
- if (!ServiceIsolate::NameEquals(isolate->name())) { |
+void ServiceIsolate::MaybeInjectVMServiceLibrary(Isolate* I) { |
+ Thread* T = Thread::Current(); |
+ ASSERT(I == T->isolate()); |
+ ASSERT(I != NULL); |
+ ASSERT(I->name() != NULL); |
+ if (!ServiceIsolate::NameEquals(I->name())) { |
// Not service isolate. |
return; |
} |
@@ -539,19 +542,19 @@ void ServiceIsolate::MaybeInjectVMServiceLibrary(Isolate* isolate) { |
// Service isolate already exists. |
return; |
} |
- SetServiceIsolate(isolate); |
+ SetServiceIsolate(I); |
- StackZone zone(isolate); |
- HANDLESCOPE(thread); |
+ StackZone zone(T); |
+ HANDLESCOPE(T); |
// Register dart:vmservice library. |
- const String& url_str = String::Handle(Symbols::DartVMService().raw()); |
- const Library& library = Library::Handle(Library::New(url_str)); |
+ const String& url_str = String::Handle(Z, Symbols::DartVMService().raw()); |
srdjan
2015/09/02 22:24:09
ditto
Ivan Posva
2015/09/02 22:59:26
ditto
|
+ const Library& library = Library::Handle(Z, Library::New(url_str)); |
library.Register(); |
library.set_native_entry_resolver(ServiceNativeResolver); |
// Temporarily install our library tag handler. |
- isolate->set_library_tag_handler(LibraryTagHandler); |
+ I->set_library_tag_handler(LibraryTagHandler); |
// Get script source. |
const char* resource = NULL; |
@@ -559,17 +562,16 @@ void ServiceIsolate::MaybeInjectVMServiceLibrary(Isolate* isolate) { |
intptr_t r = Resources::ResourceLookup(path, &resource); |
ASSERT(r != Resources::kNoSuchInstance); |
ASSERT(resource != NULL); |
- const String& source_str = String::Handle( |
+ const String& source_str = String::Handle(Z, |
String::FromUTF8(reinterpret_cast<const uint8_t*>(resource), r)); |
ASSERT(!source_str.IsNull()); |
- const Script& script = Script::Handle( |
- isolate, Script::New(url_str, source_str, RawScript::kLibraryTag)); |
+ const Script& script = Script::Handle(Z, |
+ Script::New(url_str, source_str, RawScript::kLibraryTag)); |
// Compile script. |
Dart_EnterScope(); // Need to enter scope for tag handler. |
library.SetLoadInProgress(); |
- const Error& error = Error::Handle(isolate, |
- Compiler::Compile(library, script)); |
+ const Error& error = Error::Handle(Z, Compiler::Compile(library, script)); |
if (!error.IsNull()) { |
OS::PrintErr("vm-service: Isolate creation error: %s\n", |
error.ToErrorCString()); |
@@ -580,22 +582,22 @@ void ServiceIsolate::MaybeInjectVMServiceLibrary(Isolate* isolate) { |
Dart_ExitScope(); |
// Uninstall our library tag handler. |
- isolate->set_library_tag_handler(NULL); |
+ I->set_library_tag_handler(NULL); |
} |
-void ServiceIsolate::ConstructExitMessageAndCache(Isolate* isolate) { |
+void ServiceIsolate::ConstructExitMessageAndCache(Isolate* I) { |
// Construct and cache exit message here so we can send it without needing an |
// isolate. |
- StartIsolateScope iso_scope(isolate); |
- Thread* thread = Thread::Current(); |
- ASSERT(isolate == thread->isolate()); |
- ASSERT(isolate != NULL); |
- StackZone zone(isolate); |
- HANDLESCOPE(thread); |
+ StartIsolateScope iso_scope(I); |
+ Thread* T = Thread::Current(); |
+ ASSERT(I == T->isolate()); |
+ ASSERT(I != NULL); |
+ StackZone zone(T); |
+ HANDLESCOPE(T); |
ASSERT(exit_message_ == NULL); |
ASSERT(exit_message_length_ == 0); |
- const Array& list = Array::Handle(MakeServiceExitMessage()); |
+ const Array& list = Array::Handle(Z, MakeServiceExitMessage()); |
ASSERT(!list.IsNull()); |
MessageWriter writer(&exit_message_, &allocator, false); |
writer.WriteMessage(list); |
@@ -671,18 +673,18 @@ class RunServiceTask : public ThreadPool::Task { |
protected: |
static void ShutdownIsolate(uword parameter) { |
- Isolate* isolate = reinterpret_cast<Isolate*>(parameter); |
- ASSERT(ServiceIsolate::IsServiceIsolate(isolate)); |
+ Isolate* I = reinterpret_cast<Isolate*>(parameter); |
+ ASSERT(ServiceIsolate::IsServiceIsolate(I)); |
{ |
// Print the error if there is one. This may execute dart code to |
// print the exception object, so we need to use a StartIsolateScope. |
- StartIsolateScope start_scope(isolate); |
- Thread* thread = Thread::Current(); |
- ASSERT(isolate == thread->isolate()); |
- StackZone zone(isolate); |
- HandleScope handle_scope(thread); |
- Error& error = Error::Handle(); |
- error = isolate->object_store()->sticky_error(); |
+ StartIsolateScope start_scope(I); |
+ Thread* T = Thread::Current(); |
+ ASSERT(I == T->isolate()); |
+ StackZone zone(T); |
+ HandleScope handle_scope(T); |
+ Error& error = Error::Handle(Z); |
+ error = I->object_store()->sticky_error(); |
if (!error.IsNull()) { |
OS::PrintErr("vm-service: Error: %s\n", error.ToErrorCString()); |
} |
@@ -690,7 +692,7 @@ class RunServiceTask : public ThreadPool::Task { |
} |
{ |
// Shut the isolate down. |
- SwitchIsolateScope switch_scope(isolate); |
+ SwitchIsolateScope switch_scope(I); |
Dart::ShutdownIsolate(); |
} |
ServiceIsolate::SetServiceIsolate(NULL); |
@@ -701,15 +703,15 @@ class RunServiceTask : public ThreadPool::Task { |
ServiceIsolate::FinishedExiting(); |
} |
- void RunMain(Isolate* isolate) { |
- StartIsolateScope iso_scope(isolate); |
- Thread* thread = Thread::Current(); |
- ASSERT(isolate == thread->isolate()); |
- StackZone zone(isolate); |
- HANDLESCOPE(thread); |
+ void RunMain(Isolate* I) { |
+ StartIsolateScope iso_scope(I); |
+ Thread* T = Thread::Current(); |
+ ASSERT(I == T->isolate()); |
+ StackZone zone(T); |
+ HANDLESCOPE(T); |
// Invoke main which will return the loadScriptPort. |
- const Library& root_library = |
- Library::Handle(isolate, isolate->object_store()->root_library()); |
+ const Library& root_library = Library::Handle(Z, |
+ I->object_store()->root_library()); |
if (root_library.IsNull()) { |
if (FLAG_trace_service) { |
OS::Print("vm-service: Embedder did not install a script."); |
@@ -718,11 +720,10 @@ class RunServiceTask : public ThreadPool::Task { |
return; |
} |
ASSERT(!root_library.IsNull()); |
- const String& entry_name = String::Handle(isolate, String::New("main")); |
+ const String& entry_name = String::Handle(Z, String::New("main")); |
ASSERT(!entry_name.IsNull()); |
- const Function& entry = |
- Function::Handle(isolate, |
- root_library.LookupFunctionAllowPrivate(entry_name)); |
+ const Function& entry = Function::Handle(Z, |
+ root_library.LookupFunctionAllowPrivate(entry_name)); |
if (entry.IsNull()) { |
// Service isolate is not supported by embedder. |
if (FLAG_trace_service) { |
@@ -731,10 +732,8 @@ class RunServiceTask : public ThreadPool::Task { |
return; |
} |
ASSERT(!entry.IsNull()); |
- const Object& result = |
- Object::Handle(isolate, |
- DartEntry::InvokeFunction(entry, |
- Object::empty_array())); |
+ const Object& result = Object::Handle(Z, |
+ DartEntry::InvokeFunction(entry, Object::empty_array())); |
ASSERT(!result.IsNull()); |
if (result.IsError()) { |
// Service isolate did not initialize properly. |