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

Unified Diff: vm/raw_object_snapshot.cc

Issue 10837247: use bit fields for class state and field type values. This shrinks the snapshot (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 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 | « 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: vm/raw_object_snapshot.cc
===================================================================
--- vm/raw_object_snapshot.cc (revision 10692)
+++ vm/raw_object_snapshot.cc (working copy)
@@ -54,13 +54,7 @@
cls.set_next_field_offset(reader->ReadIntptrValue());
cls.set_num_native_fields(reader->ReadIntptrValue());
cls.set_token_pos(reader->ReadIntptrValue());
- cls.set_class_state(reader->Read<int8_t>());
- if (reader->Read<bool>()) {
- cls.set_is_const();
- }
- if (reader->Read<bool>()) {
- cls.set_is_interface();
- }
+ cls.set_state_bits(reader->Read<uint8_t>());
// Set all the object fields.
// TODO(5411462): Need to assert No GC can happen here, even though
@@ -100,9 +94,7 @@
writer->WriteIntptrValue(ptr()->next_field_offset_);
writer->WriteIntptrValue(ptr()->num_native_fields_);
writer->WriteIntptrValue(ptr()->token_pos_);
- writer->Write<int8_t>(ptr()->class_state_);
- writer->Write<bool>(ptr()->is_const_);
- writer->Write<bool>(ptr()->is_interface_);
+ writer->Write<uint8_t>(ptr()->state_bits_);
// Write out all the object pointer fields.
SnapshotWriterVisitor visitor(writer);
@@ -538,10 +530,7 @@
// Set all non object fields.
field.set_token_pos(reader->ReadIntptrValue());
- field.set_is_static(reader->Read<bool>());
- field.set_is_final(reader->Read<bool>());
- field.set_is_const(reader->Read<bool>());
- field.set_has_initializer(reader->Read<bool>());
+ field.set_kind_bits(reader->Read<uint8_t>());
// Set all the object fields.
// TODO(5411462): Need to assert No GC can happen here, even though
@@ -571,10 +560,7 @@
// Write out all the non object fields.
writer->WriteIntptrValue(ptr()->token_pos_);
- writer->Write<bool>(ptr()->is_static_);
- writer->Write<bool>(ptr()->is_final_);
- writer->Write<bool>(ptr()->is_const_);
- writer->Write<bool>(ptr()->has_initializer_);
+ writer->WriteIntptrValue(ptr()->kind_bits_);
// Write out all the object pointer fields.
SnapshotWriterVisitor visitor(writer);
« no previous file with comments | « vm/raw_object.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698