7346 {
7347 deferred_start_index_ =
d->ReadUnsigned();
7348 deferred_stop_index_ = deferred_start_index_ +
d->ReadUnsigned();
7349 for (intptr_t id = deferred_start_index_; id < deferred_stop_index_; id++) {
7350 CodePtr
code =
static_cast<CodePtr
>(
d->Ref(
id));
7352 d->ReadInstructions(
code,
false);
7353 if (
code->untag()->owner_->IsHeapObject() &&
7354 code->untag()->owner_->IsFunction()) {
7355 FunctionPtr func =
static_cast<FunctionPtr
>(
code->untag()->owner_);
7356 uword entry_point =
code->untag()->entry_point_;
7357 ASSERT(entry_point != 0);
7358 func->untag()->entry_point_ = entry_point;
7359 uword unchecked_entry_point =
code->untag()->unchecked_entry_point_;
7360 ASSERT(unchecked_entry_point != 0);
7361 func->untag()->unchecked_entry_point_ = unchecked_entry_point;
7362#if defined(DART_PRECOMPILED_RUNTIME)
7363 if (func->untag()->data()->IsHeapObject() &&
7364 func->untag()->data()->IsClosureData()) {
7365
7366
7367 auto data =
static_cast<ClosureDataPtr
>(func->untag()->data());
7369
7371 data->untag()->closure()->untag()->entry_point_ = entry_point;
7372 }
7373 }
7374#endif
7375 }
7376 code->untag()->code_source_map_ =
7377 static_cast<CodeSourceMapPtr
>(
d->ReadRef());
7378 }
7379
7380 ObjectPoolPtr
pool =
7381 d->isolate_group()->object_store()->global_object_pool();
7382 const intptr_t
length =
pool->untag()->length_;
7383 uint8_t* entry_bits =
pool->untag()->entry_bits();
7384 for (intptr_t
i =
d->ReadUnsigned();
i <
length;
i +=
d->ReadUnsigned()) {
7386 ASSERT(entry_type == ObjectPool::EntryType::kTaggedObject);
7387
7388
7389 pool->untag()->data()[
i].raw_obj_ =
d->ReadRef();
7390 }
7391
7392
7393
7394 auto isolate_group =
d->isolate_group();
7395 if (isolate_group->dispatch_table_snapshot() != nullptr) {
7396 ReadStream
stream(isolate_group->dispatch_table_snapshot(),
7397 isolate_group->dispatch_table_snapshot_size());
7399 isolate_group->object_store()->instructions_tables());
7401 root_table ^= tables.At(0);
7402 d->ReadDispatchTable(&
stream,
true, root_table,
7403 deferred_start_index_, deferred_stop_index_);
7404 }
7405 }
#define ASSERT_EQUAL(expected, actual)
static constexpr T decode(S value)
bool IsUnknownDartCode() const
static int8_t data[kExtLength]