1508 1509 // This function returns true when an object has been 1510 // around since the previous marking and hasn't yet 1511 // been marked during this marking. 1512 bool is_obj_ill(const oop obj, const HeapRegion* hr) const { 1513 return 1514 !hr->obj_allocated_since_next_marking(obj) && 1515 !isMarkedNext(obj); 1516 } 1517 1518 // Determine if an object is dead, given only the object itself. 1519 // This will find the region to which the object belongs and 1520 // then call the region version of the same function. 1521 1522 // Added if it is NULL it isn't dead. 1523 1524 inline bool is_obj_dead(const oop obj) const; 1525 1526 inline bool is_obj_ill(const oop obj) const; 1527 1528 bool allocated_since_marking(oop obj, HeapRegion* hr, VerifyOption vo); 1529 HeapWord* top_at_mark_start(HeapRegion* hr, VerifyOption vo); 1530 bool is_marked(oop obj, VerifyOption vo); 1531 const char* top_at_mark_start_str(VerifyOption vo); 1532 1533 ConcurrentMark* concurrent_mark() const { return _cm; } 1534 1535 // Refinement 1536 1537 ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; } 1538 1539 // The dirty cards region list is used to record a subset of regions 1540 // whose cards need clearing. The list if populated during the 1541 // remembered set scanning and drained during the card table 1542 // cleanup. Although the methods are reentrant, population/draining 1543 // phases must not overlap. For synchronization purposes the last 1544 // element on the list points to itself. 1545 HeapRegion* _dirty_cards_region_list; 1546 void push_dirty_cards_region(HeapRegion* hr); 1547 HeapRegion* pop_dirty_cards_region(); | 1508 1509 // This function returns true when an object has been 1510 // around since the previous marking and hasn't yet 1511 // been marked during this marking. 1512 bool is_obj_ill(const oop obj, const HeapRegion* hr) const { 1513 return 1514 !hr->obj_allocated_since_next_marking(obj) && 1515 !isMarkedNext(obj); 1516 } 1517 1518 // Determine if an object is dead, given only the object itself. 1519 // This will find the region to which the object belongs and 1520 // then call the region version of the same function. 1521 1522 // Added if it is NULL it isn't dead. 1523 1524 inline bool is_obj_dead(const oop obj) const; 1525 1526 inline bool is_obj_ill(const oop obj) const; 1527 1528 inline bool requires_marking(const void* entry) const; 1529 1530 bool allocated_since_marking(oop obj, HeapRegion* hr, VerifyOption vo); 1531 HeapWord* top_at_mark_start(HeapRegion* hr, VerifyOption vo); 1532 bool is_marked(oop obj, VerifyOption vo); 1533 const char* top_at_mark_start_str(VerifyOption vo); 1534 1535 ConcurrentMark* concurrent_mark() const { return _cm; } 1536 1537 // Refinement 1538 1539 ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; } 1540 1541 // The dirty cards region list is used to record a subset of regions 1542 // whose cards need clearing. The list if populated during the 1543 // remembered set scanning and drained during the card table 1544 // cleanup. Although the methods are reentrant, population/draining 1545 // phases must not overlap. For synchronization purposes the last 1546 // element on the list points to itself. 1547 HeapRegion* _dirty_cards_region_list; 1548 void push_dirty_cards_region(HeapRegion* hr); 1549 HeapRegion* pop_dirty_cards_region(); |