equal
deleted
inserted
replaced
3702 // leave it there, when we restart this task, we will rescan |
3702 // leave it there, when we restart this task, we will rescan |
3703 // the object. It is easy to avoid this. We move the finger by |
3703 // the object. It is easy to avoid this. We move the finger by |
3704 // enough to point to the next possible object header (the |
3704 // enough to point to the next possible object header (the |
3705 // bitmap knows by how much we need to move it as it knows its |
3705 // bitmap knows by how much we need to move it as it knows its |
3706 // granularity). |
3706 // granularity). |
3707 move_finger_to(_nextMarkBitMap->nextWord(_finger)); |
3707 assert(_finger < _region_limit, "invariant"); |
|
3708 HeapWord* new_finger = _nextMarkBitMap->nextWord(_finger); |
|
3709 // Check if bitmap iteration was aborted while scanning the last object |
|
3710 if (new_finger >= _region_limit) { |
|
3711 giveup_current_region(); |
|
3712 } else { |
|
3713 move_finger_to(new_finger); |
|
3714 } |
3708 } |
3715 } |
3709 } |
3716 } |
3710 // At this point we have either completed iterating over the |
3717 // At this point we have either completed iterating over the |
3711 // region we were holding on to, or we have aborted. |
3718 // region we were holding on to, or we have aborted. |
3712 |
3719 |