Index: runtime/vm/snapshot.cc |
=================================================================== |
--- runtime/vm/snapshot.cc (revision 37600) |
+++ runtime/vm/snapshot.cc (working copy) |
@@ -302,7 +302,7 @@ |
} |
// For all other internal VM classes we read the object inline. |
- intptr_t tags = ReadIntptrValue(); |
+ intptr_t tags = ReadTags(); |
switch (class_id) { |
#define SNAPSHOT_READ(clazz) \ |
case clazz::kClassId: { \ |
@@ -315,6 +315,7 @@ |
case kTypedData##clazz##Cid: \ |
CLASS_LIST_TYPED_DATA(SNAPSHOT_READ) { |
+ tags = RawObject::ClassIdTag::update(class_id, tags); |
obj_ = TypedData::ReadFrom(this, object_id, tags, kind_); |
break; |
} |
@@ -323,6 +324,7 @@ |
case kExternalTypedData##clazz##Cid: \ |
CLASS_LIST_TYPED_DATA(SNAPSHOT_READ) { |
+ tags = RawObject::ClassIdTag::update(class_id, tags); |
obj_ = ExternalTypedData::ReadFrom(this, object_id, tags, kind_); |
break; |
} |
@@ -812,7 +814,7 @@ |
RawObject* SnapshotReader::ReadInlinedObject(intptr_t object_id) { |
// Read the class header information and lookup the class. |
intptr_t class_header = ReadIntptrValue(); |
- intptr_t tags = ReadIntptrValue(); |
+ intptr_t tags = ReadTags(); |
if (SerializedHeaderData::decode(class_header) == kInstanceObjectId) { |
// Object is regular dart instance. |
Instance* result = reinterpret_cast<Instance*>(GetBackRef(object_id)); |
@@ -892,6 +894,7 @@ |
case kTypedData##clazz##Cid: \ |
CLASS_LIST_TYPED_DATA(SNAPSHOT_READ) { |
+ tags = RawObject::ClassIdTag::update(cls_.id(), tags); |
obj_ = TypedData::ReadFrom(this, object_id, tags, kind_); |
break; |
} |
@@ -900,6 +903,7 @@ |
case kExternalTypedData##clazz##Cid: \ |
CLASS_LIST_TYPED_DATA(SNAPSHOT_READ) { |
+ tags = RawObject::ClassIdTag::update(cls_.id(), tags); |
obj_ = ExternalTypedData::ReadFrom(this, object_id, tags, kind_); |
break; |
} |
@@ -1388,7 +1392,7 @@ |
// case. |
// Write out the class and tags information. |
WriteVMIsolateObject(kClassCid); |
- WriteIntptrValue(GetObjectTags(cls)); |
+ WriteTags(GetObjectTags(cls)); |
// Write out the library url and class name. |
RawLibrary* library = cls->ptr()->library_; |
@@ -1411,7 +1415,7 @@ |
// Write out the class and tags information. |
WriteIndexedObject(array_kind); |
- WriteIntptrValue(tags); |
+ WriteTags(tags); |
// Write out the length field. |
Write<RawObject*>(length); |
@@ -1471,7 +1475,7 @@ |
WriteIntptrValue(SerializedHeaderData::encode(kInstanceObjectId)); |
// Write out the tags. |
- WriteIntptrValue(tags); |
+ WriteTags(tags); |
// Write out the class information for this object. |
WriteObjectImpl(cls); |