< prev index next >

src/share/vm/gc/g1/g1ConcurrentMark.cpp

Print this page
rev 13279 : 8182169: ArrayAllocator should take MEMFLAGS as regular parameter
Reviewed-by: tschatzl, kbarrett
rev 13284 : imported patch 8184346-cleanup-g1cmbitmap
rev 13285 : imported patch 8184346-rkennke-review
rev 13286 : imported patch 8184346-erikd-mgerdin-review
rev 13287 : [mq]: 8184346-erikd-review

*** 2714,2728 **** // Region iteration was actually aborted. So now _finger // points to the address of the object we last scanned. If we // leave it there, when we restart this task, we will rescan // the object. It is easy to avoid this. We move the finger by ! // enough to point to the next possible object header (the ! // bitmap knows by how much we need to move it as it knows its ! // granularity). assert(_finger < _region_limit, "invariant"); ! HeapWord* new_finger = _nextMarkBitMap->addr_after_obj(_finger); // Check if bitmap iteration was aborted while scanning the last object if (new_finger >= _region_limit) { giveup_current_region(); } else { move_finger_to(new_finger); --- 2714,2726 ---- // Region iteration was actually aborted. So now _finger // points to the address of the object we last scanned. If we // leave it there, when we restart this task, we will rescan // the object. It is easy to avoid this. We move the finger by ! // enough to point to the next possible object header. assert(_finger < _region_limit, "invariant"); ! HeapWord* const new_finger = _finger + ((oop)_finger)->size(); // Check if bitmap iteration was aborted while scanning the last object if (new_finger >= _region_limit) { giveup_current_region(); } else { move_finger_to(new_finger);
< prev index next >