< prev index next >

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

Print this page
rev 13170 : [mq]: 8183397-consistent-closure-filtering

@@ -45,19 +45,23 @@
       obj = (oop) m->decode_pointer();
     } else {
       obj = copy_to_survivor_space(in_cset_state, obj, m);
     }
     oopDesc::encode_store_heap_oop(p, obj);
-  } else if (in_cset_state.is_humongous()) {
+  } else {
+    if (in_cset_state.is_humongous()) {
     _g1h->set_humongous_is_live(obj);
   } else {
     assert(in_cset_state.is_default() || in_cset_state.is_ext(),
            "In_cset_state must be NotInCSet or Ext here, but is " CSETSTATE_FORMAT, in_cset_state.value());
   }
+  }
 
   assert(obj != NULL, "Must be");
+  if (!HeapRegion::is_in_same_region(p, obj)) {
   update_rs(from, p, obj);
+  }
 }
 
 template <class T> inline void G1ParScanThreadState::push_on_queue(T* ref) {
   assert(verify_ref(ref), "sanity");
   _refs->push(ref);
< prev index next >