Index: runtime/vm/dart.cc |
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc |
index bace9af3c1dc0cd73342a5721d1c45dcc35751e1..52f85182d0779f341f6b2d6160b2db48df3f65c2 100644 |
--- a/runtime/vm/dart.cc |
+++ b/runtime/vm/dart.cc |
@@ -48,6 +48,7 @@ ThreadPool* Dart::thread_pool_ = NULL; |
DebugInfo* Dart::pprof_symbol_generator_ = NULL; |
ReadOnlyHandles* Dart::predefined_handles_ = NULL; |
const uint8_t* Dart::instructions_snapshot_buffer_ = NULL; |
+const uint8_t* Dart::data_snapshot_buffer_ = NULL; |
// Structure for managing read-only global handles allocation used for |
// creating global read-only handles that are pre created and initialized |
@@ -75,6 +76,7 @@ class ReadOnlyHandles { |
const char* Dart::InitOnce(const uint8_t* vm_isolate_snapshot, |
const uint8_t* instructions_snapshot, |
+ const uint8_t* data_snapshot, |
Dart_IsolateCreateCallback create, |
Dart_IsolateShutdownCallback shutdown, |
Dart_FileOpenCallback file_open, |
@@ -155,6 +157,8 @@ const char* Dart::InitOnce(const uint8_t* vm_isolate_snapshot, |
if (vm_isolate_snapshot != NULL) { |
if (instructions_snapshot != NULL) { |
vm_isolate_->SetupInstructionsSnapshotPage(instructions_snapshot); |
+ ASSERT(data_snapshot != NULL); |
+ vm_isolate_->SetupDataSnapshotPage(data_snapshot); |
} |
const Snapshot* snapshot = Snapshot::SetupFromBuffer(vm_isolate_snapshot); |
if (snapshot == NULL) { |
@@ -164,6 +168,7 @@ const char* Dart::InitOnce(const uint8_t* vm_isolate_snapshot, |
VmIsolateSnapshotReader reader(snapshot->content(), |
snapshot->length(), |
instructions_snapshot, |
+ data_snapshot, |
T); |
const Error& error = Error::Handle(reader.ReadVmIsolateSnapshot()); |
if (!error.IsNull()) { |
@@ -360,6 +365,7 @@ RawError* Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { |
IsolateSnapshotReader reader(snapshot->content(), |
snapshot->length(), |
Dart::instructions_snapshot_buffer(), |
+ Dart::data_snapshot_buffer(), |
T); |
const Error& error = Error::Handle(reader.ReadFullSnapshot()); |
if (!error.IsNull()) { |