Chromium Code Reviews| Index: src/snapshot-common.cc |
| diff --git a/src/snapshot-common.cc b/src/snapshot-common.cc |
| index b22f2902d37d47a5719f12dbe864288a2a08b996..e181e84968bf247cd3ebf075f52efd3f762e22ee 100644 |
| --- a/src/snapshot-common.cc |
| +++ b/src/snapshot-common.cc |
| @@ -15,43 +15,6 @@ namespace v8 { |
| namespace internal { |
| -static void ReserveSpaceForSnapshot(Deserializer* deserializer, |
| - const char* file_name) { |
| - int file_name_length = StrLength(file_name) + 10; |
| - Vector<char> name = Vector<char>::New(file_name_length + 1); |
| - OS::SNPrintF(name, "%s.size", file_name); |
| - FILE* fp = OS::FOpen(name.start(), "r"); |
| - CHECK_NE(NULL, fp); |
| - int new_size, pointer_size, data_size, code_size, map_size, cell_size, |
| - property_cell_size; |
| -#ifdef _MSC_VER |
| - // Avoid warning about unsafe fscanf from MSVC. |
| - // Please note that this is only fine if %c and %s are not being used. |
| -#define fscanf fscanf_s |
| -#endif |
| - CHECK_EQ(1, fscanf(fp, "new %d\n", &new_size)); |
| - CHECK_EQ(1, fscanf(fp, "pointer %d\n", &pointer_size)); |
| - CHECK_EQ(1, fscanf(fp, "data %d\n", &data_size)); |
| - CHECK_EQ(1, fscanf(fp, "code %d\n", &code_size)); |
| - CHECK_EQ(1, fscanf(fp, "map %d\n", &map_size)); |
| - CHECK_EQ(1, fscanf(fp, "cell %d\n", &cell_size)); |
| - CHECK_EQ(1, fscanf(fp, "property cell %d\n", &property_cell_size)); |
| -#ifdef _MSC_VER |
| -#undef fscanf |
| -#endif |
| - fclose(fp); |
| - deserializer->set_reservation(NEW_SPACE, new_size); |
| - deserializer->set_reservation(OLD_POINTER_SPACE, pointer_size); |
| - deserializer->set_reservation(OLD_DATA_SPACE, data_size); |
| - deserializer->set_reservation(CODE_SPACE, code_size); |
| - deserializer->set_reservation(MAP_SPACE, map_size); |
| - deserializer->set_reservation(CELL_SPACE, cell_size); |
| - deserializer->set_reservation(PROPERTY_CELL_SPACE, |
| - property_cell_size); |
| - name.Dispose(); |
| -} |
| - |
| - |
| void Snapshot::ReserveSpaceForLinkedInSnapshot(Deserializer* deserializer) { |
| deserializer->set_reservation(NEW_SPACE, new_space_used_); |
| deserializer->set_reservation(OLD_POINTER_SPACE, pointer_space_used_); |
| @@ -64,21 +27,8 @@ void Snapshot::ReserveSpaceForLinkedInSnapshot(Deserializer* deserializer) { |
| } |
| -bool Snapshot::Initialize(const char* snapshot_file) { |
| - if (snapshot_file) { |
| - int len; |
| - byte* str = ReadBytes(snapshot_file, &len); |
| - if (!str) return false; |
| - bool success; |
| - { |
| - SnapshotByteSource source(str, len); |
| - Deserializer deserializer(&source); |
| - ReserveSpaceForSnapshot(&deserializer, snapshot_file); |
| - success = V8::Initialize(&deserializer); |
| - } |
| - DeleteArray(str); |
| - return success; |
| - } else if (size_ > 0) { |
| +bool Snapshot::Initialize() { |
| + if (size_ > 0) { |
| ElapsedTimer timer; |
| if (FLAG_profile_deserialization) { |
| timer.Start(); |
| @@ -102,6 +52,11 @@ bool Snapshot::HaveASnapshotToStartFrom() { |
| } |
| +bool Snapshot::IsEnabled() { |
|
Benedikt Meurer
2014/05/27 04:09:59
Nit: IsEnabled() should be marked as const.
Why do
vogelheim
2014/05/27 15:20:23
Removed IsEnabled; it's the exact same thing as Ha
|
| + return size_ != 0; |
| +} |
| + |
| + |
| Handle<Context> Snapshot::NewContextFromSnapshot(Isolate* isolate) { |
| if (context_size_ == 0) { |
| return Handle<Context>(); |
| @@ -123,4 +78,15 @@ Handle<Context> Snapshot::NewContextFromSnapshot(Isolate* isolate) { |
| return Handle<Context>(Context::cast(root)); |
| } |
| + |
| +#ifdef V8_USE_EXTERNAL_STARTUP_DATA |
| +// Dummy implementations of Set*FromFile(..) APIs. |
| +// |
| +// These are meant for use with snapshot-external.cc. Should this file |
| +// be compiled with those options we just supply these dummy implementations |
| +// below. This happens when compiling the mksnapshot utility. |
| +void SetNativesFromFile(StartupData* data) { CHECK(false); } |
| +void SetSnapshotFromFile(StartupData* data) { CHECK(false); } |
| +#endif // V8_USE_EXTERNAL_STARTUP_DATA |
| + |
| } } // namespace v8::internal |