Index: runtime/vm/service.cc |
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc |
index 0a59f071f5621def10d86eba7b4f3cd03d58e13a..90fc8dc353d30d12f451a78ed67730b496af1d6e 100644 |
--- a/runtime/vm/service.cc |
+++ b/runtime/vm/service.cc |
@@ -530,6 +530,9 @@ void Service::SendEvent(intptr_t eventFamilyId, |
intptr_t eventType, |
const Object& eventMessage) { |
ASSERT(!ServiceIsolate::IsServiceIsolate(Isolate::Current())); |
+ if (ServiceIsolate::IsServiceIsolateDescendant(Isolate::Current())) { |
turnidge
2015/04/01 19:57:34
Make this an assert. Collapse to single test.
Cutch
2015/04/01 20:19:04
Done.
|
+ return; |
+ } |
if (!ServiceIsolate::IsRunning()) { |
return; |
} |
@@ -592,7 +595,8 @@ void Service::SendEvent(intptr_t eventFamilyId, |
void Service::HandleGCEvent(GCEvent* event) { |
- if (ServiceIsolate::IsServiceIsolate(Isolate::Current())) { |
+ if (ServiceIsolate::IsServiceIsolate(Isolate::Current()) || |
+ ServiceIsolate::IsServiceIsolateDescendant(Isolate::Current())) { |
turnidge
2015/04/01 19:57:34
Collapse to one test.
Cutch
2015/04/01 20:19:04
Done.
|
return; |
} |
JSONStream js; |
@@ -2419,7 +2423,8 @@ class ServiceIsolateVisitor : public IsolateVisitor { |
void VisitIsolate(Isolate* isolate) { |
if ((isolate != Dart::vm_isolate()) && |
- !ServiceIsolate::IsServiceIsolate(isolate)) { |
+ !ServiceIsolate::IsServiceIsolate(isolate) && |
+ !ServiceIsolate::IsServiceIsolateDescendant(isolate)) { |
turnidge
2015/04/01 19:57:34
Collapse test.
Cutch
2015/04/01 20:19:04
Done.
|
jsarr_->AddValue(isolate); |
} |
} |