@@ -214,7 +214,6 @@ bool DartComponentControllerV2::CreateAndBindNamespace() {
214214
215215bool DartComponentControllerV2::SetUpFromKernel () {
216216 dart_utils::MappedResource manifest;
217-
218217 if (!dart_utils::MappedResource::LoadFromNamespace (
219218 namespace_, data_path_ + " /app.dilplist" , manifest)) {
220219 return false ;
@@ -225,10 +224,14 @@ bool DartComponentControllerV2::SetUpFromKernel() {
225224 isolate_snapshot_data_)) {
226225 return false ;
227226 }
227+ if (!dart_utils::MappedResource::LoadFromNamespace (
228+ nullptr , " /pkg/data/isolate_core_snapshot_instructions.bin" ,
229+ isolate_snapshot_instructions_, true /* executable */ )) {
230+ return false ;
231+ }
228232
229- // The core snapshot does not separate instructions from data.
230233 if (!CreateIsolate (isolate_snapshot_data_.address (),
231- nullptr /* isolate_snapshot_instructions */ )) {
234+ isolate_snapshot_instructions_. address () )) {
232235 return false ;
233236 }
234237
@@ -293,16 +296,16 @@ bool DartComponentControllerV2::SetUpFromAppSnapshot() {
293296 return false ;
294297 }
295298 } else {
296- // TODO(fxb/91200): This code path was broken for over a year and is
297- // probably not used.
298299 if (!dart_utils::MappedResource::LoadFromNamespace (
299300 namespace_, data_path_ + " /isolate_snapshot_data.bin" ,
300301 isolate_snapshot_data_)) {
301302 return false ;
302303 }
303- isolate_data = isolate_snapshot_data_.address ();
304- // We don't separate instructions from data in 'core' snapshots.
305- isolate_instructions = nullptr ;
304+ if (!dart_utils::MappedResource::LoadFromNamespace (
305+ namespace_, data_path_ + " /isolate_snapshot_instructions.bin" ,
306+ isolate_snapshot_instructions_, true /* executable */ )) {
307+ return false ;
308+ }
306309 }
307310 return CreateIsolate (isolate_data, isolate_instructions);
308311#endif // defined(AOT_RUNTIME)
0 commit comments