| Index: runtime/vm/dart_api_impl.cc
|
| diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
|
| index f3f1f5283960100646aefd336e8a1c9e4c9714f9..5e1105a2ef95e7460d93feee9f3c0531ecd32790 100644
|
| --- a/runtime/vm/dart_api_impl.cc
|
| +++ b/runtime/vm/dart_api_impl.cc
|
| @@ -1254,7 +1254,7 @@ DART_EXPORT const char* Dart_VersionString() {
|
| return Version::String();
|
| }
|
|
|
| -DART_EXPORT bool Dart_Initialize(
|
| +DART_EXPORT char* Dart_Initialize(
|
| const uint8_t* vm_isolate_snapshot,
|
| const uint8_t* instructions_snapshot,
|
| Dart_IsolateCreateCallback create,
|
| @@ -1272,21 +1272,19 @@ DART_EXPORT bool Dart_Initialize(
|
| file_open, file_read, file_write,
|
| file_close, entropy_source);
|
| if (err_msg != NULL) {
|
| - OS::PrintErr("Dart_Initialize: %s\n", err_msg);
|
| - return false;
|
| + return strdup(err_msg);
|
| }
|
| - return true;
|
| + return NULL;
|
| }
|
|
|
|
|
| -DART_EXPORT bool Dart_Cleanup() {
|
| +DART_EXPORT char* Dart_Cleanup() {
|
| CHECK_NO_ISOLATE(Isolate::Current());
|
| const char* err_msg = Dart::Cleanup();
|
| if (err_msg != NULL) {
|
| - OS::PrintErr("Dart_Cleanup: %s\n", err_msg);
|
| - return false;
|
| + return strdup(err_msg);
|
| }
|
| - return true;
|
| + return NULL;
|
| }
|
|
|
|
|
| @@ -1357,6 +1355,10 @@ DART_EXPORT Dart_Isolate Dart_CreateIsolate(const char* script_uri,
|
| }
|
| Isolate* I = Dart::CreateIsolate(isolate_name, *flags);
|
| free(isolate_name);
|
| + if (I == NULL) {
|
| + *error = strdup("Isolate creation failed");
|
| + return reinterpret_cast<Dart_Isolate>(NULL);
|
| + }
|
| {
|
| Thread* T = Thread::Current();
|
| StackZone zone(T);
|
|
|