Chromium Code Reviews| Index: vm/dart_api_impl.cc |
| =================================================================== |
| --- vm/dart_api_impl.cc (revision 1818) |
| +++ vm/dart_api_impl.cc (working copy) |
| @@ -465,7 +465,10 @@ |
| // 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) { |
| + return Api::Error("Isolate create callback parameter cannot be NULL"); |
|
turnidge
2011/11/28 18:39:58
I don't think that Api::Error works here, because
siva
2011/11/29 00:54:25
True, I will return false and add a TODO on how to
|
| + } |
| return Dart::InitOnce(argc, argv, callback); |
| } |
| @@ -482,24 +485,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(); |
| } |