Index: runtime/vm/isolate.cc |
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc |
index 7d317d91b015a4c640bb646060a519c92051c1e1..32b50e86084612a75e4ec366b283bc6a694b6384 100644 |
--- a/runtime/vm/isolate.cc |
+++ b/runtime/vm/isolate.cc |
@@ -1013,11 +1013,29 @@ void Isolate::SetupInstructionsSnapshotPage( |
snapshot.instructions_size()); |
} |
#endif |
- heap_->SetupInstructionsSnapshotPage(snapshot.instructions_start(), |
- snapshot.instructions_size()); |
+ heap_->SetupExternalPage(snapshot.instructions_start(), |
+ snapshot.instructions_size(), |
+ /* is_executable = */ true); |
} |
+void Isolate::SetupDataSnapshotPage(const uint8_t* data_snapshot_buffer) { |
+ DataSnapshot snapshot(data_snapshot_buffer); |
+#if defined(DEBUG) |
+ if (FLAG_trace_isolates) { |
+ OS::Print("Precompiled rodata are at [0x%" Px ", 0x%" Px ")\n", |
+ reinterpret_cast<uword>(snapshot.data_start()), |
+ reinterpret_cast<uword>(snapshot.data_start()) + |
+ snapshot.data_size()); |
+ } |
+#endif |
+ heap_->SetupExternalPage(snapshot.data_start(), |
+ snapshot.data_size(), |
+ /* is_executable = */ false); |
+} |
+ |
+ |
+ |
void Isolate::set_debugger_name(const char* name) { |
free(debugger_name_); |
debugger_name_ = strdup(name); |