Index: runtime/vm/raw_object.h |
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h |
index 95288b1e1407513aceb2514fe2abea4016cd6c76..488739cfbf2f115848aa9a7b095500405043f7be 100644 |
--- a/runtime/vm/raw_object.h |
+++ b/runtime/vm/raw_object.h |
@@ -266,21 +266,11 @@ class RawObject { |
kVMHeapObjectBit = 2, |
kRememberedBit = 3, |
kReservedTagPos = 4, // kReservedBit{100K,1M,10M} |
-#if defined(ARCH_IS_32_BIT) |
kReservedTagSize = 4, |
kSizeTagPos = kReservedTagPos + kReservedTagSize, // = 8 |
kSizeTagSize = 8, |
kClassIdTagPos = kSizeTagPos + kSizeTagSize, // = 16 |
kClassIdTagSize = 16, |
-#elif defined(ARCH_IS_64_BIT) |
- kReservedTagSize = 12, |
- kSizeTagPos = kReservedTagPos + kReservedTagSize, // = 16 |
- kSizeTagSize = 16, |
- kClassIdTagPos = kSizeTagPos + kSizeTagSize, // = 32 |
- kClassIdTagSize = 32, |
-#else |
-#error Unexpected architecture word size |
-#endif |
}; |
COMPILE_ASSERT(kClassIdTagSize == (sizeof(classid_t) * kBitsPerByte)); |
@@ -614,6 +604,7 @@ class RawObject { |
friend class RawExternalTypedData; |
friend class RawInstructions; |
friend class RawInstance; |
+ friend class RawString; |
friend class RawTypedData; |
friend class Scavenger; |
friend class ScavengerVisitor; |
@@ -1863,10 +1854,20 @@ class RawString : public RawInstance { |
protected: |
RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->length_); } |
RawSmi* length_; |
+#if !defined(HASH_IN_OBJECT_HEADER) |
RawSmi* hash_; |
RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->hash_); } |
+#else |
+ RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->length_); } |
+#endif |
+ private: |
friend class Library; |
+ friend class OneByteStringSerializationCluster; |
+ friend class TwoByteStringSerializationCluster; |
+ friend class OneByteStringDeserializationCluster; |
+ friend class TwoByteStringDeserializationCluster; |
+ friend class RODataSerializationCluster; |
}; |
@@ -2453,6 +2454,7 @@ inline intptr_t RawObject::NumberOfTypedDataClasses() { |
return (kNullCid - kTypedDataInt8ArrayCid); |
} |
+ |
} // namespace dart |
#endif // RUNTIME_VM_RAW_OBJECT_H_ |