Index: runtime/vm/freelist.cc |
diff --git a/runtime/vm/freelist.cc b/runtime/vm/freelist.cc |
index e4a880e8113cb0f354f7a6b0a1d75f9f4d24ea96..221a5ea4bf9bc475ab1a1d4c3446ac1cacd89b7f 100644 |
--- a/runtime/vm/freelist.cc |
+++ b/runtime/vm/freelist.cc |
@@ -22,13 +22,18 @@ FreeListElement* FreeListElement::AsElement(uword addr, intptr_t size) { |
FreeListElement* result = reinterpret_cast<FreeListElement*>(addr); |
- uword tags = 0; |
+ uint32_t tags = 0; |
tags = RawObject::SizeTag::update(size, tags); |
tags = RawObject::ClassIdTag::update(kFreeListElement, tags); |
// All words in a freelist element header should look like Smis. |
ASSERT(!reinterpret_cast<RawObject*>(tags)->IsHeapObject()); |
result->tags_ = tags; |
+#if defined(HASH_IN_OBJECT_HEADER) |
+ // Clearing this is mostly for neatness. The identityHashCode |
+ // of free list entries is not used. |
+ result->hash_ = 0; |
+#endif |
if (size > RawObject::SizeTag::kMaxSizeTag) { |
*result->SizeAddress() = size; |
} |