src/share/vm/gc_implementation/g1/g1ParScanThreadState.inline.hpp

Print this page
rev 6670 : fast reclaim main patch

@@ -50,20 +50,21 @@
 
   // Although we never intentionally push references outside of the collection
   // set, due to (benign) races in the claim mechanism during RSet scanning more
   // than one thread might claim the same card. So the same card may be
   // processed multiple times. So redo this check.
-  if (_g1h->in_cset_fast_test(obj)) {
+  if (_g1h->is_in_cset_or_humongous(obj)) {
     oop forwardee;
     if (obj->is_forwarded()) {
       forwardee = obj->forwardee();
     } else {
       forwardee = copy_to_survivor_space(obj);
     }
-    assert(forwardee != NULL, "forwardee should not be NULL");
+    if (forwardee != NULL) {
     oopDesc::encode_store_heap_oop(p, forwardee);
   }
+  }
 
   assert(obj != NULL, "Must be");
   update_rs(from, p, queue_num());
 }