Chromium Code Reviews| Index: vm/dart_api_impl.cc |
| =================================================================== |
| --- vm/dart_api_impl.cc (revision 1883) |
| +++ vm/dart_api_impl.cc (working copy) |
| @@ -465,7 +465,11 @@ |
| // TODO(iposva): This is a placeholder for the eventual external Dart API. |
| DART_EXPORT bool Dart_Initialize(int argc, |
| const char** argv, |
| - Dart_IsolateInitCallback callback) { |
| + Dart_IsolateCreateCallback callback) { |
| + if (callback == NULL) { |
|
Ivan Posva
2011/11/30 00:58:21
Why is NULL not a legal value? Maybe the embedder
siva
2011/11/30 18:56:31
Removed the check for NULL and in isolate spawn I
|
| + // TODO(asiva): Need to provide an error message here. |
| + return false; |
| + } |
| return Dart::InitOnce(argc, argv, callback); |
| } |
| @@ -482,24 +486,24 @@ |
| DART_EXPORT Dart_Isolate Dart_CreateIsolate(const Dart_Snapshot* snapshot, |
| - void* data) { |
| + void* callback_data, |
| + Dart_ErrorBuffer error) { |
| Isolate* isolate = Dart::CreateIsolate(); |
| ASSERT(isolate != NULL); |
| LongJump* base = isolate->long_jump_base(); |
| LongJump jump; |
| isolate->set_long_jump_base(&jump); |
| if (setjmp(*jump.Set()) == 0) { |
| - Dart::InitializeIsolate(snapshot, data); |
| + Dart::InitializeIsolate(snapshot, callback_data); |
| START_TIMER(time_total_runtime); |
| isolate->set_long_jump_base(base); |
| return reinterpret_cast<Dart_Isolate>(isolate); |
| } else { |
| { |
| DARTSCOPE(isolate); |
| - const String& error = |
| + const String& errmsg = |
| String::Handle(isolate->object_store()->sticky_error()); |
| - // TODO(asiva): Need to return this as a error. |
| - OS::PrintErr(error.ToCString()); |
| + OS::SNPrint(error.buffer, error.length, "%s", errmsg.ToCString()); |
| } |
| Dart::ShutdownIsolate(); |
| } |