src/hotspot/share/gc/g1/g1RemSet.cpp
changeset 51494 1906adbef2dc
parent 51332 c25572739e7c
child 51877 5f931e3e7a63
equal deleted inserted replaced
51493:6b5f3f5fd63c 51494:1906adbef2dc
   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