< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

Print this page




1517 
1518   // This function returns true when an object has been
1519   // around since the previous marking and hasn't yet
1520   // been marked during this marking.
1521   bool is_obj_ill(const oop obj, const HeapRegion* hr) const {
1522     return
1523       !hr->obj_allocated_since_next_marking(obj) &&
1524       !isMarkedNext(obj);
1525   }
1526 
1527   // Determine if an object is dead, given only the object itself.
1528   // This will find the region to which the object belongs and
1529   // then call the region version of the same function.
1530 
1531   // Added if it is NULL it isn't dead.
1532 
1533   inline bool is_obj_dead(const oop obj) const;
1534 
1535   inline bool is_obj_ill(const oop obj) const;
1536 


1537   bool allocated_since_marking(oop obj, HeapRegion* hr, VerifyOption vo);
1538   HeapWord* top_at_mark_start(HeapRegion* hr, VerifyOption vo);
1539   bool is_marked(oop obj, VerifyOption vo);
1540   const char* top_at_mark_start_str(VerifyOption vo);
1541 
1542   ConcurrentMark* concurrent_mark() const { return _cm; }
1543 
1544   // Refinement
1545 
1546   ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1547 
1548   // The dirty cards region list is used to record a subset of regions
1549   // whose cards need clearing. The list if populated during the
1550   // remembered set scanning and drained during the card table
1551   // cleanup. Although the methods are reentrant, population/draining
1552   // phases must not overlap. For synchronization purposes the last
1553   // element on the list points to itself.
1554   HeapRegion* _dirty_cards_region_list;
1555   void push_dirty_cards_region(HeapRegion* hr);
1556   HeapRegion* pop_dirty_cards_region();




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


< prev index next >