Index: runtime/bin/main.cc |
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc |
index 14cff189f2e1fdd45aac1054f42c39f615f4af46..0edd37e0209326f8eba577a6a1ed2d1ab737fc0b 100644 |
--- a/runtime/bin/main.cc |
+++ b/runtime/bin/main.cc |
@@ -132,10 +132,6 @@ static const int kErrorExitCode = 255; |
// Exit code indicating a vm restart request. Never returned to the user. |
static const int kRestartRequestExitCode = 1000; |
-// Global flag that is used to indicate that the VM should do a clean |
-// shutdown. |
-static bool do_vm_shutdown = true; |
- |
static void ErrorExit(int exit_code, const char* format, ...) { |
va_list arguments; |
va_start(arguments, format); |
@@ -155,9 +151,7 @@ static void ErrorExit(int exit_code, const char* format, ...) { |
free(error); |
} |
- if (do_vm_shutdown) { |
- EventHandler::Stop(); |
- } |
+ EventHandler::Stop(); |
Platform::Exit(exit_code); |
} |
@@ -458,33 +452,6 @@ static bool ProcessHotReloadTestModeOption(const char* arg, |
} |
-static bool ProcessShutdownOption(const char* arg, |
- CommandLineOptions* vm_options) { |
- ASSERT(arg != NULL); |
- if (*arg == '\0') { |
- do_vm_shutdown = true; |
- vm_options->AddArgument("--shutdown"); |
- return true; |
- } |
- |
- if ((*arg != '=') && (*arg != ':')) { |
- return false; |
- } |
- |
- if (strcmp(arg + 1, "true") == 0) { |
- do_vm_shutdown = true; |
- vm_options->AddArgument("--shutdown"); |
- return true; |
- } else if (strcmp(arg + 1, "false") == 0) { |
- do_vm_shutdown = false; |
- vm_options->AddArgument("--no-shutdown"); |
- return true; |
- } |
- |
- return false; |
-} |
- |
- |
static struct { |
const char* option_name; |
bool (*process)(const char* option, CommandLineOptions* vm_options); |
@@ -504,7 +471,6 @@ static struct { |
{ "--enable-vm-service", ProcessEnableVmServiceOption }, |
{ "--disable-service-origin-check", ProcessDisableServiceOriginCheckOption }, |
{ "--observe", ProcessObserveOption }, |
- { "--shutdown", ProcessShutdownOption }, |
{ "--snapshot=", ProcessSnapshotFilenameOption }, |
{ "--snapshot-kind=", ProcessSnapshotKindOption }, |
{ "--run-app-snapshot=", ProcessRunAppSnapshotOption }, |
@@ -1391,9 +1357,7 @@ bool RunMainIsolate(const char* script_name, |
Log::PrintErr("VM cleanup failed: %s\n", error); |
free(error); |
} |
- if (do_vm_shutdown) { |
- EventHandler::Stop(); |
- } |
+ EventHandler::Stop(); |
Platform::Exit((exit_code != 0) ? exit_code : kErrorExitCode); |
} |
delete [] isolate_name; |
@@ -1667,6 +1631,8 @@ void main(int argc, char** argv) { |
Thread::InitOnce(); |
+ Loader::InitOnce(); |
+ |
if (!DartUtils::SetOriginalWorkingDirectory()) { |
OSError err; |
fprintf(stderr, "Error determining current directory: %s\n", err.message()); |
@@ -1731,9 +1697,7 @@ void main(int argc, char** argv) { |
DartUtils::EntropySource, |
GetVMServiceAssetsArchiveCallback); |
if (error != NULL) { |
- if (do_vm_shutdown) { |
- EventHandler::Stop(); |
- } |
+ EventHandler::Stop(); |
fprintf(stderr, "VM initialization failed: %s\n", error); |
fflush(stderr); |
free(error); |
@@ -1758,9 +1722,7 @@ void main(int argc, char** argv) { |
Log::PrintErr("VM cleanup failed: %s\n", error); |
free(error); |
} |
- if (do_vm_shutdown) { |
- EventHandler::Stop(); |
- } |
+ EventHandler::Stop(); |
// Free copied argument strings if converted. |
if (argv_converted) { |