Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Unified Diff: runtime/vm/raw_object_snapshot.cc

Issue 2993613002: [kernel] Make snapshotting work. (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/raw_object.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/raw_object_snapshot.cc
diff --git a/runtime/vm/raw_object_snapshot.cc b/runtime/vm/raw_object_snapshot.cc
index 1c317d8ee859fac83d88cbcd11033bf592d2406b..524690df21fe61298c9c159bf3ca9c8887fe8e53 100644
--- a/runtime/vm/raw_object_snapshot.cc
+++ b/runtime/vm/raw_object_snapshot.cc
@@ -719,16 +719,20 @@ RawFunction* Function::ReadFrom(SnapshotReader* reader,
// don't set them until after setting the kind.
const int32_t token_pos = reader->Read<int32_t>();
const int32_t end_token_pos = reader->Read<uint32_t>();
+ int32_t kernel_offset = 0;
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ kernel_offset = reader->Read<int32_t>();
+#endif
func.set_num_fixed_parameters(reader->Read<int16_t>());
func.set_num_optional_parameters(reader->Read<int16_t>());
func.set_kind_tag(reader->Read<uint32_t>());
func.set_token_pos(TokenPosition::SnapshotDecode(token_pos));
func.set_end_token_pos(TokenPosition::SnapshotDecode(end_token_pos));
+ func.set_kernel_offset(kernel_offset);
func.set_usage_counter(reader->Read<int32_t>());
func.set_deoptimization_counter(reader->Read<int8_t>());
func.set_optimized_instruction_count(reader->Read<uint16_t>());
func.set_optimized_call_site_count(reader->Read<uint16_t>());
- func.set_kernel_offset(0);
func.set_was_compiled(false);
// Set all the object fields.
@@ -788,6 +792,7 @@ void RawFunction::WriteTo(SnapshotWriter* writer,
#if !defined(DART_PRECOMPILED_RUNTIME)
writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
writer->Write<int32_t>(ptr()->end_token_pos_.SnapshotEncode());
+ writer->Write<int32_t>(ptr()->kernel_offset_);
#endif
writer->Write<int16_t>(ptr()->num_fixed_parameters_);
writer->Write<int16_t>(ptr()->num_optional_parameters_);
@@ -831,8 +836,10 @@ RawField* Field::ReadFrom(SnapshotReader* reader,
field.set_token_pos(TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
field.set_guarded_cid(reader->Read<int32_t>());
field.set_is_nullable(reader->Read<int32_t>());
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ field.set_kernel_offset(reader->Read<int32_t>());
+#endif
field.set_kind_bits(reader->Read<uint8_t>());
- field.set_kernel_offset(0);
// Set all the object fields.
READ_OBJECT_FIELDS(field, field.raw()->from(), field.raw()->to_snapshot(kind),
@@ -869,6 +876,9 @@ void RawField::WriteTo(SnapshotWriter* writer,
writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
writer->Write<int32_t>(ptr()->guarded_cid_);
writer->Write<int32_t>(ptr()->is_nullable_);
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ writer->Write<int32_t>(ptr()->kernel_offset_);
+#endif
writer->Write<uint8_t>(ptr()->kind_bits_);
// Write out the name.
@@ -1020,6 +1030,8 @@ RawScript* Script::ReadFrom(SnapshotReader* reader,
script.StoreNonPointer(&script.raw_ptr()->col_offset_,
reader->Read<int32_t>());
script.StoreNonPointer(&script.raw_ptr()->kind_, reader->Read<int8_t>());
+ script.StoreNonPointer(&script.raw_ptr()->kernel_script_index_,
+ reader->Read<int32_t>());
*reader->StringHandle() ^= String::null();
script.set_source(*reader->StringHandle());
@@ -1061,6 +1073,7 @@ void RawScript::WriteTo(SnapshotWriter* writer,
writer->Write<int32_t>(ptr()->line_offset_);
writer->Write<int32_t>(ptr()->col_offset_);
writer->Write<int8_t>(ptr()->kind_);
+ writer->Write<int32_t>(ptr()->kernel_script_index_);
// Write out all the object pointer fields.
SnapshotWriterVisitor visitor(writer, kAsReference);
« no previous file with comments | « runtime/vm/raw_object.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698