| Index: runtime/vm/raw_object.h
|
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
|
| index 67520f58a96937cd6a608905302b7f91702c8eb0..f4b07eb8e0d8846be9418a2ed12efd705a0b3e63 100644
|
| --- a/runtime/vm/raw_object.h
|
| +++ b/runtime/vm/raw_object.h
|
| @@ -285,7 +285,8 @@ class RawObject {
|
|
|
| private:
|
| // The actual unscaled bit field used within the tag field.
|
| - class SizeBits : public BitField<intptr_t, kSizeTagPos, kSizeTagSize> {};
|
| + class SizeBits :
|
| + public BitField<uword, intptr_t, kSizeTagPos, kSizeTagSize> {};
|
|
|
| static intptr_t SizeToTagValue(intptr_t size) {
|
| ASSERT(Utils::IsAligned(size, kObjectAlignment));
|
| @@ -297,7 +298,7 @@ class RawObject {
|
| };
|
|
|
| class ClassIdTag :
|
| - public BitField<intptr_t, kClassIdTagPos, kClassIdTagSize> {}; // NOLINT
|
| + public BitField<uword, intptr_t, kClassIdTagPos, kClassIdTagSize> {};
|
|
|
| bool IsWellFormed() const {
|
| uword value = reinterpret_cast<uword>(this);
|
| @@ -497,18 +498,18 @@ class RawObject {
|
| private:
|
| uword tags_; // Various object tags (bits).
|
|
|
| - class WatchedBit : public BitField<bool, kWatchedBit, 1> {};
|
| + class WatchedBit : public BitField<uword, bool, kWatchedBit, 1> {};
|
|
|
| - class MarkBit : public BitField<bool, kMarkBit, 1> {};
|
| + class MarkBit : public BitField<uword, bool, kMarkBit, 1> {};
|
|
|
| - class RememberedBit : public BitField<bool, kRememberedBit, 1> {};
|
| + class RememberedBit : public BitField<uword, bool, kRememberedBit, 1> {};
|
|
|
| - class CanonicalObjectTag : public BitField<bool, kCanonicalBit, 1> {};
|
| + class CanonicalObjectTag : public BitField<uword, bool, kCanonicalBit, 1> {};
|
|
|
| - class VMHeapObjectTag : public BitField<bool, kVMHeapObjectBit, 1> {};
|
| + class VMHeapObjectTag : public BitField<uword, bool, kVMHeapObjectBit, 1> {};
|
|
|
| class ReservedBits : public
|
| - BitField<intptr_t, kReservedTagPos, kReservedTagSize> {}; // NOLINT
|
| + BitField<uword, intptr_t, kReservedTagPos, kReservedTagSize> {};
|
|
|
| // TODO(koda): After handling tags_, return const*, like Object::raw_ptr().
|
| RawObject* ptr() const {
|
| @@ -1274,8 +1275,8 @@ class RawLocalVarDescriptors : public RawObject {
|
| kMaxIndex = (1 << (kIndexSize - 1)) - 1,
|
| };
|
|
|
| - class IndexBits : public BitField<int32_t, kIndexPos, kIndexSize> {};
|
| - class KindBits : public BitField<int8_t, kKindPos, kKindSize>{};
|
| + class IndexBits : public BitField<int32_t, int32_t, kIndexPos, kIndexSize> {};
|
| + class KindBits : public BitField<int32_t, int8_t, kKindPos, kKindSize>{};
|
|
|
| struct VarInfo {
|
| int32_t index_kind; // Bitfield for slot index on stack or in context,
|
|
|