| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/bootstrap_natives.h" | 5 #include "vm/bootstrap_natives.h" |
| 6 #include "vm/dart_api_impl.h" | 6 #include "vm/dart_api_impl.h" |
| 7 #include "vm/datastream.h" | 7 #include "vm/datastream.h" |
| 8 #include "vm/exceptions.h" | 8 #include "vm/exceptions.h" |
| 9 #include "vm/flags.h" | 9 #include "vm/flags.h" |
| 10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 // Get function. | 44 // Get function. |
| 45 const String& function_name = | 45 const String& function_name = |
| 46 String::Handle(String::New("_registerIsolate")); | 46 String::Handle(String::New("_registerIsolate")); |
| 47 ASSERT(!function_name.IsNull()); | 47 ASSERT(!function_name.IsNull()); |
| 48 register_function_ = library.LookupFunctionAllowPrivate(function_name); | 48 register_function_ = library.LookupFunctionAllowPrivate(function_name); |
| 49 ASSERT(!register_function_.IsNull()); | 49 ASSERT(!register_function_.IsNull()); |
| 50 } | 50 } |
| 51 | 51 |
| 52 virtual void VisitIsolate(Isolate* isolate) { | 52 virtual void VisitIsolate(Isolate* isolate) { |
| 53 ASSERT(ServiceIsolate::IsServiceIsolate(Isolate::Current())); | 53 ASSERT(ServiceIsolate::IsServiceIsolate(Isolate::Current())); |
| 54 if (ServiceIsolate::IsServiceIsolateDescendant(isolate) || | 54 if (IsVMInternalIsolate(isolate)) { |
| 55 (isolate == Dart::vm_isolate())) { | |
| 56 // We do not register the service (and descendants) or the vm-isolate. | 55 // We do not register the service (and descendants) or the vm-isolate. |
| 57 return; | 56 return; |
| 58 } | 57 } |
| 59 // Setup arguments for call. | 58 // Setup arguments for call. |
| 60 Dart_Port port_id = isolate->main_port(); | 59 Dart_Port port_id = isolate->main_port(); |
| 61 const Integer& port_int = Integer::Handle(Integer::New(port_id)); | 60 const Integer& port_int = Integer::Handle(Integer::New(port_id)); |
| 62 ASSERT(!port_int.IsNull()); | 61 ASSERT(!port_int.IsNull()); |
| 63 const SendPort& send_port = SendPort::Handle(SendPort::New(port_id)); | 62 const SendPort& send_port = SendPort::Handle(SendPort::New(port_id)); |
| 64 const String& name = String::Handle(String::New(isolate->name())); | 63 const String& name = String::Handle(String::New(isolate->name())); |
| 65 ASSERT(!name.IsNull()); | 64 ASSERT(!name.IsNull()); |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 ServiceEvent spawn_event(NULL, ServiceEvent::kIsolateSpawn); | 465 ServiceEvent spawn_event(NULL, ServiceEvent::kIsolateSpawn); |
| 467 spawn_event.set_spawn_token(&token); | 466 spawn_event.set_spawn_token(&token); |
| 468 spawn_event.set_spawn_error(&String::Cast(result)); | 467 spawn_event.set_spawn_error(&String::Cast(result)); |
| 469 Service::HandleEvent(&spawn_event); | 468 Service::HandleEvent(&spawn_event); |
| 470 } | 469 } |
| 471 #endif // PRODUCT | 470 #endif // PRODUCT |
| 472 return Object::null(); | 471 return Object::null(); |
| 473 } | 472 } |
| 474 | 473 |
| 475 } // namespace dart | 474 } // namespace dart |
| OLD | NEW |