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(); |
} |