< prev index next >

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

Print this page




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();


< prev index next >