| Index: runtime/vm/snapshot.cc
|
| diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc
|
| index c455d302f77a326acf8774258d02db40eab8c49c..936acbd5364ae84662b610be2f9eda945e8f28fd 100644
|
| --- a/runtime/vm/snapshot.cc
|
| +++ b/runtime/vm/snapshot.cc
|
| @@ -542,7 +542,7 @@ RawObject* SnapshotReader::ReadInstance(intptr_t object_id,
|
| if (kind_ == Snapshot::kFull) {
|
| result->SetCanonical();
|
| } else {
|
| - *result = result->CheckAndCanonicalize(NULL);
|
| + *result = result->CheckAndCanonicalize(thread(), NULL);
|
| ASSERT(!result->IsNull());
|
| }
|
| }
|
| @@ -647,7 +647,6 @@ RawApiError* SnapshotReader::ReadFullSnapshot() {
|
| }
|
| }
|
|
|
| -
|
| // Validate the class table.
|
| #if defined(DEBUG)
|
| isolate->ValidateClassTable();
|
| @@ -655,8 +654,17 @@ RawApiError* SnapshotReader::ReadFullSnapshot() {
|
|
|
| // Setup native resolver for bootstrap impl.
|
| Bootstrap::SetupNativeResolver();
|
| - return ApiError::null();
|
| }
|
| +
|
| + Class& cls = Class::Handle(thread->zone());
|
| + for (intptr_t i = 0; i < backward_references_->length(); i++) {
|
| + if ((*backward_references_)[i].reference()->IsClass()) {
|
| + cls ^= (*backward_references_)[i].reference()->raw();
|
| + cls.RehashConstants(thread->zone());
|
| + }
|
| + }
|
| +
|
| + return ApiError::null();
|
| }
|
|
|
|
|
|
|