Chromium Code Reviews| Index: runtime/bin/main.cc |
| =================================================================== |
| --- runtime/bin/main.cc (revision 20251) |
| +++ runtime/bin/main.cc (working copy) |
| @@ -29,7 +29,6 @@ |
| // Global state that stores a pointer to the application script snapshot. |
| -static bool use_script_snapshot = false; |
| static bool generate_script_snapshot = false; |
| static File* snapshot_file = NULL; |
| @@ -154,25 +153,6 @@ |
| } |
| -static bool ProcessUseScriptSnapshotOption(const char* filename) { |
| - if (filename != NULL && strlen(filename) != 0) { |
| - use_script_snapshot = true; |
| - if (generate_script_snapshot) { |
| - Log::PrintErr("Incompatible options specified --generate-script-snapshot " |
| - "and --use-script-snapshot\n"); |
| - return false; |
| - } |
| - snapshot_file = File::Open(filename, File::kRead); |
| - if (snapshot_file == NULL) { |
| - Log::PrintErr("Unable to open file %s for reading the snapshot\n", |
| - filename); |
| - return false; |
| - } |
| - } |
| - return true; |
| -} |
| - |
| - |
| static bool ProcessVmStatsOption(const char* port) { |
| ASSERT(port != NULL); |
| if (*port == '\0') { |
| @@ -216,11 +196,6 @@ |
| " dart\n"); |
| return false; |
| } |
| - if (use_script_snapshot) { |
| - Log::PrintErr("Incompatible options specified --use-script-snapshot " |
| - "and --generate-script-snapshot\n"); |
| - return false; |
| - } |
| snapshot_file = File::Open(filename, File::kWriteTruncate); |
| if (snapshot_file == NULL) { |
| Log::PrintErr("Unable to open file %s for writing the snapshot\n", |
| @@ -249,7 +224,6 @@ |
| { "--break_at=", ProcessBreakpointOption }, |
| { "--compile_all", ProcessCompileAllOption }, |
| { "--debug", ProcessDebugOption }, |
| - { "--use-script-snapshot=", ProcessUseScriptSnapshotOption }, |
| { "--generate-script-snapshot=", ProcessGenScriptSnapshotOption }, |
| { "--stats-root=", ProcessVmStatsRootOption }, |
| { "--stats", ProcessVmStatsOption }, |
| @@ -476,54 +450,21 @@ |
| CHECK_RESULT(result); |
| // Load the specified application script into the newly created isolate. |
| - Dart_Handle library; |
| - if (use_script_snapshot) { |
| - if (snapshot_file == NULL) { |
| - use_script_snapshot = false; |
| - *error = strdup("Invalid script snapshot file name specified"); |
| - Dart_ExitScope(); |
| - Dart_ShutdownIsolate(); |
| - return false; |
| - } |
| - size_t len = snapshot_file->Length(); |
| - uint8_t* buffer = reinterpret_cast<uint8_t*>(malloc(len)); |
| - if (buffer == NULL) { |
| - delete snapshot_file; |
| - snapshot_file = NULL; |
| - use_script_snapshot = false; |
| - *error = strdup("Unable to read contents of script snapshot file"); |
| - Dart_ExitScope(); |
| - Dart_ShutdownIsolate(); |
| - return false; |
| - } |
| - // Prepare for script loading by setting up the 'print' and 'timer' |
| - // closures and setting up 'package root' for URI resolution. |
| - Dart_Handle builtin_lib = |
| - Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); |
| - DartUtils::PrepareForScriptLoading(package_root, builtin_lib); |
| - snapshot_file->ReadFully(buffer, len); |
| - library = Dart_LoadScriptFromSnapshot(buffer); |
| - free(buffer); |
| - delete snapshot_file; |
| - snapshot_file = NULL; |
| - use_script_snapshot = false; // No further usage of script snapshots. |
| - } else { |
| - // Prepare builtin and its dependent libraries for use to resolve URIs. |
| - Dart_Handle uri_url = DartUtils::NewString(DartUtils::kUriLibURL); |
| - Dart_Handle uri_lib = Dart_LookupLibrary(uri_url); |
| - CHECK_RESULT(uri_lib); |
| - Dart_Handle builtin_lib = |
| - Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); |
| - CHECK_RESULT(builtin_lib); |
| + // Prepare builtin and its dependent libraries for use to resolve URIs. |
| + Dart_Handle uri_url = DartUtils::NewString(DartUtils::kUriLibURL); |
| + Dart_Handle uri_lib = Dart_LookupLibrary(uri_url); |
| + CHECK_RESULT(uri_lib); |
| + Dart_Handle builtin_lib = |
| + Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); |
|
Ivan Posva
2013/03/20 06:18:00
Isn't this library also part of the script snapsho
siva
2013/03/20 20:57:20
This library is part of the core snapshot, It will
|
| + CHECK_RESULT(builtin_lib); |
| - // Prepare for script loading by setting up the 'print' and 'timer' |
| - // closures and setting up 'package root' for URI resolution. |
| - result = DartUtils::PrepareForScriptLoading(package_root, builtin_lib); |
| - CHECK_RESULT(result); |
| + // Prepare for script loading by setting up the 'print' and 'timer' |
| + // closures and setting up 'package root' for URI resolution. |
| + result = DartUtils::PrepareForScriptLoading(package_root, builtin_lib); |
| + CHECK_RESULT(result); |
| - library = DartUtils::LoadScript(script_uri, builtin_lib); |
| - } |
| + Dart_Handle library = DartUtils::LoadScript(script_uri, builtin_lib); |
| CHECK_RESULT(library); |
| if (!Dart_IsLibrary(library)) { |
| char errbuf[256]; |
| @@ -825,6 +766,9 @@ |
| return kErrorExitCode; // Indicates we encountered an error. |
| } |
| + // Write the magic number to indicate file is a script snapshot. |
| + DartUtils::WriteMagicNumber(snapshot_file); |
| + |
| // Now write the snapshot out to specified file. |
| bool bytes_written = snapshot_file->WriteFully(buffer, size); |
| ASSERT(bytes_written); |