equal
deleted
inserted
replaced
130 public: |
130 public: |
131 G1ResetScanTopClosure(HeapWord** scan_top) : _scan_top(scan_top) { } |
131 G1ResetScanTopClosure(HeapWord** scan_top) : _scan_top(scan_top) { } |
132 |
132 |
133 virtual bool do_heap_region(HeapRegion* r) { |
133 virtual bool do_heap_region(HeapRegion* r) { |
134 uint hrm_index = r->hrm_index(); |
134 uint hrm_index = r->hrm_index(); |
135 if (!r->in_collection_set() && r->is_old_or_humongous()) { |
135 if (!r->in_collection_set() && r->is_old_or_humongous_or_archive()) { |
136 _scan_top[hrm_index] = r->top(); |
136 _scan_top[hrm_index] = r->top(); |
137 } else { |
137 } else { |
138 _scan_top[hrm_index] = r->bottom(); |
138 _scan_top[hrm_index] = r->bottom(); |
139 } |
139 } |
140 return false; |
140 return false; |
569 // worst, we end up processing a stale card unnecessarily. |
569 // worst, we end up processing a stale card unnecessarily. |
570 // |
570 // |
571 // In the normal (non-stale) case, the synchronization between the |
571 // In the normal (non-stale) case, the synchronization between the |
572 // enqueueing of the card and processing it here will have ensured |
572 // enqueueing of the card and processing it here will have ensured |
573 // we see the up-to-date region type here. |
573 // we see the up-to-date region type here. |
574 if (!r->is_old_or_humongous()) { |
574 if (!r->is_old_or_humongous_or_archive()) { |
575 return; |
575 return; |
576 } |
576 } |
577 |
577 |
578 // The result from the hot card cache insert call is either: |
578 // The result from the hot card cache insert call is either: |
579 // * pointer to the current card |
579 // * pointer to the current card |
598 r = _g1h->heap_region_containing(start); |
598 r = _g1h->heap_region_containing(start); |
599 |
599 |
600 // Check whether the region formerly in the cache should be |
600 // Check whether the region formerly in the cache should be |
601 // ignored, as discussed earlier for the original card. The |
601 // ignored, as discussed earlier for the original card. The |
602 // region could have been freed while in the cache. |
602 // region could have been freed while in the cache. |
603 if (!r->is_old_or_humongous()) { |
603 if (!r->is_old_or_humongous_or_archive()) { |
604 return; |
604 return; |
605 } |
605 } |
606 } // Else we still have the original card. |
606 } // Else we still have the original card. |
607 } |
607 } |
608 |
608 |