| 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_
|
|
|