# HG changeset patch # User tonyp # Date 1323106000 18000 # Node ID e37aedaedccdd7cb69a91caf32dd7f8e9ba3af1e # Parent cf4dd13bbcd3370b5152cda879dc7bc2431e465a# Parent 4406629aa157cd17744b80c4f05ae73c6b3636e7 Merge diff -r cf4dd13bbcd3 -r e37aedaedccd src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp --- a/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Fri Dec 02 21:10:45 2011 -0800 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Mon Dec 05 12:26:40 2011 -0500 @@ -84,8 +84,11 @@ // slightly paranoid test; I'm trying to catch potential // problems before we go into push_on_queue to know where the // problem is coming from - assert(obj == oopDesc::load_decode_heap_oop(p), - "p should still be pointing to obj"); + assert((obj == oopDesc::load_decode_heap_oop(p)) || + (obj->is_forwarded() && + obj->forwardee() == oopDesc::load_decode_heap_oop(p)), + "p should still be pointing to obj or to its forwardee"); + _par_scan_state->push_on_queue(p); } else { _par_scan_state->update_rs(_from, p, _par_scan_state->queue_num());