OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/isolate.h" | 5 #include "vm/isolate.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "platform/text_buffer.h" | 10 #include "platform/text_buffer.h" |
(...skipping 1841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1852 } | 1852 } |
1853 { | 1853 { |
1854 JSONArray breakpoints(&jsobj, "breakpoints"); | 1854 JSONArray breakpoints(&jsobj, "breakpoints"); |
1855 debugger()->PrintBreakpointsToJSONArray(&breakpoints); | 1855 debugger()->PrintBreakpointsToJSONArray(&breakpoints); |
1856 } | 1856 } |
1857 | 1857 |
1858 { | 1858 { |
1859 JSONObject jssettings(&jsobj, "_debuggerSettings"); | 1859 JSONObject jssettings(&jsobj, "_debuggerSettings"); |
1860 debugger()->PrintSettingsToJSONObject(&jssettings); | 1860 debugger()->PrintSettingsToJSONObject(&jssettings); |
1861 } | 1861 } |
| 1862 |
| 1863 { |
| 1864 GrowableObjectArray& handlers = |
| 1865 GrowableObjectArray::Handle(registered_service_extension_handlers()); |
| 1866 if (!handlers.IsNull()) { |
| 1867 JSONArray extensions(&jsobj, "extensionRPCs"); |
| 1868 String& handler_name = String::Handle(); |
| 1869 for (intptr_t i = 0; i < handlers.Length(); i += kRegisteredEntrySize) { |
| 1870 handler_name ^= handlers.At(i + kRegisteredNameIndex); |
| 1871 extensions.AddValue(handler_name.ToCString()); |
| 1872 } |
| 1873 } |
| 1874 } |
1862 } | 1875 } |
1863 | 1876 |
1864 | 1877 |
1865 void Isolate::set_tag_table(const GrowableObjectArray& value) { | 1878 void Isolate::set_tag_table(const GrowableObjectArray& value) { |
1866 tag_table_ = value.raw(); | 1879 tag_table_ = value.raw(); |
1867 } | 1880 } |
1868 | 1881 |
1869 | 1882 |
1870 void Isolate::set_current_tag(const UserTag& tag) { | 1883 void Isolate::set_current_tag(const UserTag& tag) { |
1871 uword user_tag = tag.tag(); | 1884 uword user_tag = tag.tag(); |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2035 // Sanity check. | 2048 // Sanity check. |
2036 const Instance& existing_handler = | 2049 const Instance& existing_handler = |
2037 Instance::Handle(LookupServiceExtensionHandler(name)); | 2050 Instance::Handle(LookupServiceExtensionHandler(name)); |
2038 ASSERT(existing_handler.IsNull()); | 2051 ASSERT(existing_handler.IsNull()); |
2039 } | 2052 } |
2040 #endif | 2053 #endif |
2041 ASSERT(kRegisteredNameIndex == 0); | 2054 ASSERT(kRegisteredNameIndex == 0); |
2042 handlers.Add(name, Heap::kOld); | 2055 handlers.Add(name, Heap::kOld); |
2043 ASSERT(kRegisteredHandlerIndex == 1); | 2056 ASSERT(kRegisteredHandlerIndex == 1); |
2044 handlers.Add(closure, Heap::kOld); | 2057 handlers.Add(closure, Heap::kOld); |
| 2058 { |
| 2059 // Fire off an event. |
| 2060 ServiceEvent event(this, ServiceEvent::kServiceExtensionAdded); |
| 2061 event.set_extension_rpc(&name); |
| 2062 Service::HandleEvent(&event); |
| 2063 } |
2045 } | 2064 } |
2046 | 2065 |
2047 | 2066 |
2048 // This function is written in C++ and not Dart because we must do this | 2067 // This function is written in C++ and not Dart because we must do this |
2049 // operation atomically in the face of random OOB messages. Do not port | 2068 // operation atomically in the face of random OOB messages. Do not port |
2050 // to Dart code unless you can ensure that the operations will can be | 2069 // to Dart code unless you can ensure that the operations will can be |
2051 // done atomically. | 2070 // done atomically. |
2052 RawInstance* Isolate::LookupServiceExtensionHandler(const String& name) { | 2071 RawInstance* Isolate::LookupServiceExtensionHandler(const String& name) { |
2053 const GrowableObjectArray& handlers = | 2072 const GrowableObjectArray& handlers = |
2054 GrowableObjectArray::Handle(registered_service_extension_handlers()); | 2073 GrowableObjectArray::Handle(registered_service_extension_handlers()); |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2491 } | 2510 } |
2492 | 2511 |
2493 | 2512 |
2494 RawInstance* IsolateSpawnState::BuildMessage(Thread* thread) { | 2513 RawInstance* IsolateSpawnState::BuildMessage(Thread* thread) { |
2495 return DeserializeObject(thread, | 2514 return DeserializeObject(thread, |
2496 serialized_message_, serialized_message_len_); | 2515 serialized_message_, serialized_message_len_); |
2497 } | 2516 } |
2498 | 2517 |
2499 | 2518 |
2500 } // namespace dart | 2519 } // namespace dart |
OLD | NEW |