Chromium Code Reviews| Index: runtime/vm/raw_object_snapshot.cc |
| diff --git a/runtime/vm/raw_object_snapshot.cc b/runtime/vm/raw_object_snapshot.cc |
| index 06dce1270cfcef8cc55dd362cd12161f0f4d19eb..a5ae22bb75babdc565211d962be2f6eea1c122e4 100644 |
| --- a/runtime/vm/raw_object_snapshot.cc |
| +++ b/runtime/vm/raw_object_snapshot.cc |
| @@ -756,15 +756,21 @@ void RawField::WriteTo(SnapshotWriter* writer, |
| writer->WriteObjectImpl(ptr()->type_, kAsReference); |
| // Write out the initial static value or field offset. |
| if (Field::StaticBit::decode(ptr()->kind_bits_)) { |
| - // For static field we write out the initial static value. |
| - writer->WriteObjectImpl(ptr()->initializer_.saved_value_, kAsReference); |
| + if (writer->snapshot_code()) { |
| + // For precompiled static fields, the value was already reset and |
| + // initializer_ now contains a Function. |
| + writer->WriteObjectImpl(ptr()->value_.static_value_, kAsReference); |
| + } else { |
| + // Otherwise, for static fields we write out the initial static value. |
| + writer->WriteObjectImpl(ptr()->initializer_.saved_value_, kAsReference); |
| + } |
| } else { |
| writer->WriteObjectImpl(ptr()->value_.offset_, kAsReference); |
| } |
| // Write out the dependent code. |
| writer->WriteObjectImpl(ptr()->dependent_code_, kAsReference); |
| // Write out the initializer value. |
| - writer->WriteObjectImpl(ptr()->initializer_.saved_value_, kAsReference); |
| + writer->WriteObjectImpl(ptr()->initializer_.precompiled_, kAsReference); |
|
siva
2015/09/14 20:32:59
should this also be conditional under
if (writer->
rmacnak
2015/09/15 17:56:42
Done.
|
| // Write out the guarded list length. |
| writer->WriteObjectImpl(ptr()->guarded_list_length_, kAsReference); |
| } |