7314 {
7315 deferred_start_index_ =
d->ReadUnsigned();
7316 deferred_stop_index_ = deferred_start_index_ +
d->ReadUnsigned();
7317 for (intptr_t id = deferred_start_index_; id < deferred_stop_index_; id++) {
7318 CodePtr
code =
static_cast<CodePtr
>(
d->Ref(
id));
7320 d->ReadInstructions(code,
false);
7321 if (
code->untag()->owner_->IsHeapObject() &&
7322 code->untag()->owner_->IsFunction()) {
7323 FunctionPtr func =
static_cast<FunctionPtr
>(
code->untag()->owner_);
7324 uword entry_point =
code->untag()->entry_point_;
7325 ASSERT(entry_point != 0);
7326 func->untag()->entry_point_ = entry_point;
7327 uword unchecked_entry_point =
code->untag()->unchecked_entry_point_;
7328 ASSERT(unchecked_entry_point != 0);
7329 func->untag()->unchecked_entry_point_ = unchecked_entry_point;
7330#if defined(DART_PRECOMPILED_RUNTIME)
7331 if (func->untag()->data()->IsHeapObject() &&
7332 func->untag()->data()->IsClosureData()) {
7333
7334
7335 auto data =
static_cast<ClosureDataPtr
>(func->untag()->data());
7337
7339 data->untag()->closure()->untag()->entry_point_ = entry_point;
7340 }
7341 }
7342#endif
7343 }
7344 code->untag()->code_source_map_ =
7345 static_cast<CodeSourceMapPtr
>(
d->ReadRef());
7346 }
7347
7348 ObjectPoolPtr
pool =
7349 d->isolate_group()->object_store()->global_object_pool();
7350 const intptr_t
length =
pool->untag()->length_;
7351 uint8_t* entry_bits =
pool->untag()->entry_bits();
7352 for (intptr_t i =
d->ReadUnsigned(); i <
length; i +=
d->ReadUnsigned()) {
7354 ASSERT(entry_type == ObjectPool::EntryType::kTaggedObject);
7355
7356
7357 pool->untag()->data()[i].raw_obj_ =
d->ReadRef();
7358 }
7359
7360
7361
7362 auto isolate_group =
d->isolate_group();
7363 if (isolate_group->dispatch_table_snapshot() != nullptr) {
7364 ReadStream
stream(isolate_group->dispatch_table_snapshot(),
7365 isolate_group->dispatch_table_snapshot_size());
7367 isolate_group->object_store()->instructions_tables());
7369 root_table ^= tables.At(0);
7370 d->ReadDispatchTable(&stream,
true, root_table,
7371 deferred_start_index_, deferred_stop_index_);
7372 }
7373 }
#define ASSERT_EQUAL(expected, actual)
static constexpr T decode(S value)
bool IsUnknownDartCode() const
static int8_t data[kExtLength]