| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index ed833777846be5d9043973a84364d9674e38137d..9755bbc7a7c49e463e5baa16a31a9326731c486e 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -930,42 +930,13 @@ class MapWord BASE_EMBEDDED {
|
| // View this map word as a forwarding address.
|
| inline HeapObject* ToForwardingAddress();
|
|
|
| - // Marking phase of full collection: the map word of live objects is
|
| - // marked, and may be marked as overflowed (eg, the object is live, its
|
| - // children have not been visited, and it does not fit in the marking
|
| - // stack).
|
| -
|
| - // True if this map word's mark bit is set.
|
| - inline bool IsMarked();
|
| -
|
| - // Return this map word but with its mark bit set.
|
| - inline void SetMark();
|
| -
|
| - // Return this map word but with its mark bit cleared.
|
| - inline void ClearMark();
|
| -
|
| - // True if this map word's overflow bit is set.
|
| - inline bool IsOverflowed();
|
| -
|
| - // Return this map word but with its overflow bit set.
|
| - inline void SetOverflow();
|
| -
|
| - // Return this map word but with its overflow bit cleared.
|
| - inline void ClearOverflow();
|
| + static inline MapWord FromRawValue(uintptr_t value) {
|
| + return MapWord(value);
|
| + }
|
|
|
| - // Bits used by the marking phase of the garbage collector.
|
| - //
|
| - // The first word of a heap object is normally a map pointer. The last two
|
| - // bits are tagged as '01' (kHeapObjectTag). We reuse the last two bits to
|
| - // mark an object as live and/or overflowed:
|
| - // last bit = 0, marked as alive
|
| - // second bit = 1, overflowed
|
| - // An object is only marked as overflowed when it is marked as live while
|
| - // the marking stack is overflowed.
|
| - static const int kMarkingBit = 0; // marking bit
|
| - static const int kMarkingMask = (1 << kMarkingBit); // marking mask
|
| - static const int kOverflowBit = 1; // overflow bit
|
| - static const int kOverflowMask = (1 << kOverflowBit); // overflow mask
|
| + inline uintptr_t ToRawValue() {
|
| + return value_;
|
| + }
|
|
|
| private:
|
| // HeapObject calls the private constructor and directly reads the value.
|
| @@ -1014,30 +985,19 @@ class HeapObject: public Object {
|
| // GC internal.
|
| inline int SizeFromMap(Map* map);
|
|
|
| - // Support for the marking heap objects during the marking phase of GC.
|
| - // True if the object is marked live.
|
| - inline bool IsMarked();
|
| -
|
| - // Mutate this object's map pointer to indicate that the object is live.
|
| - inline void SetMark();
|
| -
|
| - // Mutate this object's map pointer to remove the indication that the
|
| - // object is live (ie, partially restore the map pointer).
|
| - inline void ClearMark();
|
| -
|
| // True if this object is marked as overflowed. Overflowed objects have
|
| // been reached and marked during marking of the heap, but their children
|
| // have not necessarily been marked and they have not been pushed on the
|
| // marking stack.
|
| - inline bool IsOverflowed();
|
| + inline bool IsOverflowed() { return false; }
|
|
|
| // Mutate this object's map pointer to indicate that the object is
|
| // overflowed.
|
| - inline void SetOverflow();
|
| + inline void SetOverflow() {}
|
|
|
| // Mutate this object's map pointer to remove the indication that the
|
| // object is overflowed (ie, partially restore the map pointer).
|
| - inline void ClearOverflow();
|
| + inline void ClearOverflow() {}
|
|
|
| // Returns the field at offset in obj, as a read/write Object* reference.
|
| // Does no checking, and is safe to use during GC, while maps are invalid.
|
|
|