Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 98dea3c

Browse files
committed
[fuchsia] Switch from core-jit to core snapshots.
1 parent 154bd96 commit 98dea3c

File tree

5 files changed

+37
-22
lines changed

5 files changed

+37
-22
lines changed

shell/platform/fuchsia/dart_runner/dart_component_controller_v2.cc

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -213,24 +213,32 @@ bool DartComponentControllerV2::CreateAndBindNamespace() {
213213

214214
bool DartComponentControllerV2::SetUpFromKernel() {
215215
dart_utils::MappedResource manifest;
216+
216217
if (!dart_utils::MappedResource::LoadFromNamespace(
217218
namespace_, data_path_ + "/app.dilplist", manifest)) {
218219
return false;
219220
}
220221

221-
if (!dart_utils::MappedResource::LoadFromNamespace(
222+
const uint8_t *isolate_data, *isolate_instructions;
223+
if (dart_utils::MappedResource::LoadFromNamespace(
222224
nullptr, "/pkg/data/isolate_core_snapshot_data.bin",
223225
isolate_snapshot_data_)) {
224-
return false;
226+
isolate_data = isolate_snapshot_data_.address();
227+
} else {
228+
FX_LOG(ERROR, LOG_TAG, "Failed to load isolate snapshot data.");
229+
isolate_data = nullptr;
225230
}
226-
if (!dart_utils::MappedResource::LoadFromNamespace(
231+
232+
if (dart_utils::MappedResource::LoadFromNamespace(
227233
nullptr, "/pkg/data/isolate_core_snapshot_instructions.bin",
228234
isolate_snapshot_instructions_, true /* executable */)) {
229-
return false;
235+
isolate_instructions = isolate_snapshot_instructions_.address();
236+
} else {
237+
FX_LOG(ERROR, LOG_TAG, "Failed to load isolate snapshot instructions.");
238+
isolate_instructions = nullptr;
230239
}
231240

232-
if (!CreateIsolate(isolate_snapshot_data_.address(),
233-
isolate_snapshot_instructions_.address())) {
241+
if (!CreateIsolate(isolate_data, isolate_instructions)) {
234242
return false;
235243
}
236244

shell/platform/fuchsia/dart_runner/dart_runner.cc

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,17 +196,20 @@ DartRunner::DartRunner(sys::ComponentContext* context) : context_(context) {
196196
params.vm_snapshot_data = ::_kDartVmSnapshotData;
197197
params.vm_snapshot_instructions = ::_kDartVmSnapshotInstructions;
198198
#else
199-
if (!dart_utils::MappedResource::LoadFromNamespace(
199+
if (dart_utils::MappedResource::LoadFromNamespace(
200200
nullptr, "/pkg/data/vm_snapshot_data.bin", vm_snapshot_data_)) {
201-
FX_LOG(FATAL, LOG_TAG, "Failed to load vm snapshot data");
201+
params.vm_snapshot_data = vm_snapshot_data_.address();
202+
} else {
203+
FX_LOG(ERROR, LOG_TAG, "Failed to load vm snapshot data");
202204
}
203-
if (!dart_utils::MappedResource::LoadFromNamespace(
205+
206+
if (dart_utils::MappedResource::LoadFromNamespace(
204207
nullptr, "/pkg/data/vm_snapshot_instructions.bin",
205208
vm_snapshot_instructions_, true /* executable */)) {
206-
FX_LOG(FATAL, LOG_TAG, "Failed to load vm snapshot instructions");
209+
params.vm_snapshot_instructions = vm_snapshot_instructions_.address();
210+
} else {
211+
FX_LOG(ERROR, LOG_TAG, "Failed to load vm snapshot instructions");
207212
}
208-
params.vm_snapshot_data = vm_snapshot_data_.address();
209-
params.vm_snapshot_instructions = vm_snapshot_instructions_.address();
210213
#endif
211214
params.create_group = IsolateGroupCreateCallback;
212215
params.shutdown_isolate = IsolateShutdownCallback;

shell/platform/fuchsia/dart_runner/kernel/BUILD.gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ template("create_kernel_core_snapshot") {
6565
"--lazy_async_stacks",
6666
"--enable_mirrors=false",
6767
"--deterministic",
68-
"--snapshot_kind=core-jit",
68+
"--snapshot_kind=core",
6969
"--vm_snapshot_data=" + rebase_path(vm_snapshot_data, root_build_dir),
7070
"--vm_snapshot_instructions=" +
7171
rebase_path(vm_snapshot_instructions, root_build_dir),

shell/platform/fuchsia/dart_runner/service_isolate.cc

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,26 @@ Dart_Isolate CreateServiceIsolate(const char* uri,
102102
"/pkg/data/isolate_core_snapshot_instructions.bin";
103103
#endif
104104

105-
if (!dart_utils::MappedResource::LoadFromNamespace(
105+
if (dart_utils::MappedResource::LoadFromNamespace(
106106
nullptr, snapshot_data_path, mapped_isolate_snapshot_data)) {
107-
*error = strdup("Failed to load snapshot for service isolate");
107+
vmservice_data = mapped_isolate_snapshot_data.address();
108+
} else {
109+
*error = strdup("Failed to load snapshot for service isolate data");
108110
FX_LOG(ERROR, LOG_TAG, *error);
109-
return nullptr;
111+
vmservice_data = nullptr;
110112
}
111-
if (!dart_utils::MappedResource::LoadFromNamespace(
113+
114+
if (dart_utils::MappedResource::LoadFromNamespace(
112115
nullptr, snapshot_instructions_path,
113116
mapped_isolate_snapshot_instructions, true /* executable */)) {
114-
*error = strdup("Failed to load snapshot for service isolate");
117+
vmservice_instructions = mapped_isolate_snapshot_instructions.address();
118+
} else {
119+
*error =
120+
strdup("Failed to load snapshot for service isolate instructions");
115121
FX_LOG(ERROR, LOG_TAG, *error);
116-
return nullptr;
122+
vmservice_instructions = nullptr;
117123
}
118124

119-
vmservice_data = mapped_isolate_snapshot_data.address();
120-
vmservice_instructions = mapped_isolate_snapshot_instructions.address();
121125
#if defined(AOT_RUNTIME)
122126
}
123127
#endif

shell/platform/fuchsia/flutter/kernel/BUILD.gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ template("core_snapshot") {
6969
"--lazy_async_stacks",
7070
"--enable_mirrors=false",
7171
"--deterministic",
72-
"--snapshot_kind=core-jit",
72+
"--snapshot_kind=core",
7373
"--vm_snapshot_data=" + rebase_path(vm_snapshot_data, root_build_dir),
7474
"--vm_snapshot_instructions=" +
7575
rebase_path(vm_snapshot_instructions, root_build_dir),

0 commit comments

Comments
 (0)