| Index: runtime/bin/main.cc
|
| diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
|
| index 06d505675a643166d855d61d6a08b9d702a61412..5c36f41abee04c0ac518f95a8328b615e666fe24 100644
|
| --- a/runtime/bin/main.cc
|
| +++ b/runtime/bin/main.cc
|
| @@ -108,14 +108,7 @@ static void ErrorExit(int exit_code, const char* format, ...) {
|
| Dart_ExitScope();
|
| Dart_ShutdownIsolate();
|
|
|
| - // Terminate process exit-code handler.
|
| - Process::TerminateExitCodeHandler();
|
| -
|
| - char* error = Dart_Cleanup();
|
| - if (error != NULL) {
|
| - Log::PrintErr("VM cleanup failed: %s\n", error);
|
| - free(error);
|
| - }
|
| + Dart_Cleanup();
|
|
|
| exit(exit_code);
|
| }
|
| @@ -631,7 +624,6 @@ static Dart_Isolate CreateIsolateAndSetupHelper(const char* script_uri,
|
| error);
|
|
|
| if (isolate == NULL) {
|
| - delete isolate_data;
|
| return NULL;
|
| }
|
|
|
| @@ -1037,17 +1029,15 @@ void main(int argc, char** argv) {
|
| }
|
|
|
| // Initialize the Dart VM.
|
| - char* error = Dart_Initialize(vm_isolate_snapshot_buffer,
|
| - CreateIsolateAndSetup, NULL, NULL, ShutdownIsolate,
|
| - DartUtils::OpenFile,
|
| - DartUtils::ReadFile,
|
| - DartUtils::WriteFile,
|
| - DartUtils::CloseFile,
|
| - DartUtils::EntropySource);
|
| - if (error != NULL) {
|
| - fprintf(stderr, "VM initialization failed: %s\n", error);
|
| + if (!Dart_Initialize(vm_isolate_snapshot_buffer,
|
| + CreateIsolateAndSetup, NULL, NULL, ShutdownIsolate,
|
| + DartUtils::OpenFile,
|
| + DartUtils::ReadFile,
|
| + DartUtils::WriteFile,
|
| + DartUtils::CloseFile,
|
| + DartUtils::EntropySource)) {
|
| + fprintf(stderr, "%s", "VM initialization failed\n");
|
| fflush(stderr);
|
| - free(error);
|
| exit(kErrorExitCode);
|
| }
|
|
|
| @@ -1058,6 +1048,7 @@ void main(int argc, char** argv) {
|
|
|
| // Call CreateIsolateAndSetup which creates an isolate and loads up
|
| // the specified application script.
|
| + char* error = NULL;
|
| int exit_code = 0;
|
| char* isolate_name = BuildIsolateName(script_name, "main");
|
| Dart_Isolate isolate = CreateIsolateAndSetupHelper(script_name,
|
| @@ -1070,14 +1061,7 @@ void main(int argc, char** argv) {
|
| if (isolate == NULL) {
|
| Log::PrintErr("%s\n", error);
|
| free(error);
|
| - error = NULL;
|
| delete [] isolate_name;
|
| - Process::TerminateExitCodeHandler();
|
| - error = Dart_Cleanup();
|
| - if (error != NULL) {
|
| - Log::PrintErr("VM cleanup failed: %s\n", error);
|
| - free(error);
|
| - }
|
| exit((exit_code != 0) ? exit_code : kErrorExitCode);
|
| }
|
| delete [] isolate_name;
|
| @@ -1181,11 +1165,7 @@ void main(int argc, char** argv) {
|
| // Terminate process exit-code handler.
|
| Process::TerminateExitCodeHandler();
|
|
|
| - error = Dart_Cleanup();
|
| - if (error != NULL) {
|
| - Log::PrintErr("VM cleanup failed: %s\n", error);
|
| - free(error);
|
| - }
|
| + Dart_Cleanup();
|
|
|
| // Free copied argument strings if converted.
|
| if (argv_converted) {
|
|
|