| Index: runtime/vm/raw_object.h
|
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
|
| index a62bbd0955500234594b75ca51c56adbb9239189..460c7c641bfec10957b421dc628004f83bad8924 100644
|
| --- a/runtime/vm/raw_object.h
|
| +++ b/runtime/vm/raw_object.h
|
| @@ -189,6 +189,8 @@ class RawObject {
|
| kClassIdTagSize = 16
|
| };
|
|
|
| + class FreeBit : public BitField<bool, kFreeBit, 1> {};
|
| +
|
| // Encodes the object size in the tag in units of object alignment.
|
| class SizeTag {
|
| public:
|
| @@ -272,12 +274,12 @@ class RawObject {
|
| intptr_t Size() const {
|
| uword tags = ptr()->tags_;
|
| intptr_t result = SizeTag::decode(tags);
|
| - if ((result != 0) && !FreeBit::decode(tags)) {
|
| + if (result != 0) {
|
| ASSERT(result == SizeFromClass());
|
| return result;
|
| }
|
| result = SizeFromClass();
|
| - ASSERT((result > SizeTag::kMaxSizeTag) || FreeBit::decode(tags));
|
| + ASSERT(result > SizeTag::kMaxSizeTag);
|
| return result;
|
| }
|
|
|
| @@ -318,8 +320,6 @@ class RawObject {
|
| uword tags_; // Various object tags (bits).
|
|
|
| private:
|
| - class FreeBit : public BitField<bool, kFreeBit, 1> {};
|
| -
|
| class MarkBit : public BitField<bool, kMarkBit, 1> {};
|
|
|
| class CanonicalObjectTag : public BitField<bool, kCanonicalBit, 1> {};
|
| @@ -336,8 +336,6 @@ class RawObject {
|
|
|
| intptr_t GetClassId() const {
|
| uword tags = ptr()->tags_;
|
| - // TODO(vegorov): stop destroying tags_ when creating FreeListElement.
|
| - ASSERT(!FreeBit::decode(tags));
|
| return ClassIdTag::decode(tags);
|
| }
|
|
|
|
|