28 #ifndef V8_MARK_COMPACT_INL_H_
29 #define V8_MARK_COMPACT_INL_H_
50 abort_incremental_marking_ =
55 bool MarkCompactCollector::MarkObjectAndPush(
HeapObject* obj) {
56 if (MarkObjectWithoutPush(obj)) {
64 void MarkCompactCollector::MarkObject(HeapObject* obj, MarkBit mark_bit) {
66 if (!mark_bit.Get()) {
69 ProcessNewlyMarkedObject(obj);
74 bool MarkCompactCollector::MarkObjectWithoutPush(HeapObject* obj) {
76 if (!mark_bit.Get()) {
77 SetMark(obj, mark_bit);
84 void MarkCompactCollector::SetMark(HeapObject* obj, MarkBit mark_bit) {
96 ASSERT(obj->IsHeapObject());
102 void MarkCompactCollector::RecordSlot(
Object** anchor_slot,
107 !ShouldSkipEvacuationSlotRecording(anchor_slot)) {
120 #endif // V8_MARK_COMPACT_INL_H_
static MemoryChunk * FromAddress(Address a)
static HeapObject * cast(Object *obj)
static Map * cast(Object *obj)
#define ASSERT(condition)
static void IncrementLiveBytesFromGC(Address address, int by)
static const int kReduceMemoryFootprintMask
static MarkBit MarkBitFrom(Address addr)
static bool IsMarked(Object *obj)
void ClearCacheOnMap(Map *map)
void PushBlack(HeapObject *object)
static const int kAbortIncrementalMarkingMask
SlotsBuffer ** slots_buffer_address()
bool IsEvacuationCandidate()
void EvictEvacuationCandidate(Page *page)
MarkBit MarkBitFromIndex(uint32_t index, bool data_only=false)
static const int kSweepPreciselyMask
uint32_t AddressToMarkbitIndex(Address addr)
static bool AddTo(SlotsBufferAllocator *allocator, SlotsBuffer **buffer_address, ObjectSlot slot, AdditionMode mode)