OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 "include/dart_api.h" | 5 #include "include/dart_api.h" |
6 | 6 |
7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/dart.h" | 10 #include "vm/dart.h" |
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 | 521 |
522 DART_EXPORT Dart_Handle Dart_MakePersistentHandle(Dart_Handle object) { | 522 DART_EXPORT Dart_Handle Dart_MakePersistentHandle(Dart_Handle object) { |
523 UNIMPLEMENTED(); | 523 UNIMPLEMENTED(); |
524 return NULL; | 524 return NULL; |
525 } | 525 } |
526 | 526 |
527 | 527 |
528 // --- Initialization and Globals --- | 528 // --- Initialization and Globals --- |
529 | 529 |
530 | 530 |
531 // TODO(iposva): This is a placeholder for the eventual external Dart API. | 531 DART_EXPORT bool Dart_Initialize(Dart_IsolateCreateCallback create, |
532 DART_EXPORT bool Dart_Initialize(Dart_IsolateCreateCallback callback) { | 532 Dart_IsolateInterruptCallback interrupt) { |
533 return Dart::InitOnce(callback); | 533 return Dart::InitOnce(create, interrupt); |
534 } | 534 } |
535 | 535 |
536 DART_EXPORT bool Dart_SetVMFlags(int argc, const char** argv) { | 536 DART_EXPORT bool Dart_SetVMFlags(int argc, const char** argv) { |
537 return Flags::ProcessCommandLineFlags(argc, argv); | 537 return Flags::ProcessCommandLineFlags(argc, argv); |
538 } | 538 } |
539 | 539 |
540 DART_EXPORT bool Dart_IsVMFlagSet(const char* flag_name) { | 540 DART_EXPORT bool Dart_IsVMFlagSet(const char* flag_name) { |
541 if (Flags::Lookup(flag_name) != NULL) { | 541 if (Flags::Lookup(flag_name) != NULL) { |
542 return true; | 542 return true; |
543 } | 543 } |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 if (msg != NULL) { | 656 if (msg != NULL) { |
657 return Api::Error(msg); | 657 return Api::Error(msg); |
658 } | 658 } |
659 ScriptSnapshotWriter writer(root_lib, buffer, ApiAllocator); | 659 ScriptSnapshotWriter writer(root_lib, buffer, ApiAllocator); |
660 writer.WriteScriptSnapshot(); | 660 writer.WriteScriptSnapshot(); |
661 *size = writer.Size(); | 661 *size = writer.Size(); |
662 return Api::Success(); | 662 return Api::Success(); |
663 } | 663 } |
664 | 664 |
665 | 665 |
| 666 DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate) { |
| 667 if (isolate == NULL) { |
| 668 FATAL1("%s expects argument 'isolate' to be non-null.", CURRENT_FUNC); |
| 669 } |
| 670 Isolate* iso = reinterpret_cast<Isolate*>(isolate); |
| 671 iso->ScheduleInterrupts(Isolate::kApiInterrupt); |
| 672 } |
| 673 |
| 674 |
666 // --- Messages and Ports --- | 675 // --- Messages and Ports --- |
667 | 676 |
668 | 677 |
669 DART_EXPORT void Dart_SetMessageCallbacks( | 678 DART_EXPORT void Dart_SetMessageCallbacks( |
670 Dart_PostMessageCallback post_message_callback, | 679 Dart_PostMessageCallback post_message_callback, |
671 Dart_ClosePortCallback close_port_callback) { | 680 Dart_ClosePortCallback close_port_callback) { |
672 Isolate* isolate = Isolate::Current(); | 681 Isolate* isolate = Isolate::Current(); |
673 CHECK_ISOLATE(isolate); | 682 CHECK_ISOLATE(isolate); |
674 ASSERT(post_message_callback != NULL); | 683 ASSERT(post_message_callback != NULL); |
675 ASSERT(close_port_callback != NULL); | 684 ASSERT(close_port_callback != NULL); |
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1182 DARTSCOPE(Isolate::Current()); | 1191 DARTSCOPE(Isolate::Current()); |
1183 const String& str = Api::UnwrapStringHandle(object); | 1192 const String& str = Api::UnwrapStringHandle(object); |
1184 if (str.IsNull()) { | 1193 if (str.IsNull()) { |
1185 RETURN_TYPE_ERROR(object, String); | 1194 RETURN_TYPE_ERROR(object, String); |
1186 } | 1195 } |
1187 if (!str.IsExternal()) { | 1196 if (!str.IsExternal()) { |
1188 return Api::Error("%s expects argument 'object' to be an external String.", | 1197 return Api::Error("%s expects argument 'object' to be an external String.", |
1189 CURRENT_FUNC); | 1198 CURRENT_FUNC); |
1190 } | 1199 } |
1191 if (peer == NULL) { | 1200 if (peer == NULL) { |
1192 return Api::Error("%s expects argument 'peer' to be non-NULL.", | 1201 return Api::Error("%s expects argument 'peer' to be non-null.", |
1193 CURRENT_FUNC); | 1202 CURRENT_FUNC); |
1194 } | 1203 } |
1195 *peer = str.GetPeer(); | 1204 *peer = str.GetPeer(); |
1196 return Api::Success(); | 1205 return Api::Success(); |
1197 } | 1206 } |
1198 | 1207 |
1199 | 1208 |
1200 DART_EXPORT Dart_Handle Dart_NewExternalString8(const uint8_t* codepoints, | 1209 DART_EXPORT Dart_Handle Dart_NewExternalString8(const uint8_t* codepoints, |
1201 intptr_t length, | 1210 intptr_t length, |
1202 void* peer, | 1211 void* peer, |
(...skipping 1267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2470 } | 2479 } |
2471 delete debug_region; | 2480 delete debug_region; |
2472 } else { | 2481 } else { |
2473 *buffer = NULL; | 2482 *buffer = NULL; |
2474 *buffer_size = 0; | 2483 *buffer_size = 0; |
2475 } | 2484 } |
2476 } | 2485 } |
2477 | 2486 |
2478 | 2487 |
2479 } // namespace dart | 2488 } // namespace dart |
OLD | NEW |