< prev index next >

src/hotspot/share/gc/parallel/psCompactionManager.inline.hpp

Print this page

        

*** 27,37 **** --- 27,39 ---- #include "gc/parallel/parMarkBitMap.hpp" #include "gc/parallel/psCompactionManager.hpp" #include "gc/parallel/psParallelCompact.inline.hpp" #include "gc/shared/taskqueue.inline.hpp" + #include "oops/access.inline.hpp" #include "oops/arrayOop.inline.hpp" + #include "oops/compressedOops.inline.hpp" #include "oops/objArrayOop.inline.hpp" #include "oops/oop.inline.hpp" #include "utilities/debug.hpp" #include "utilities/globalDefinitions.hpp"
*** 69,81 **** region_stack()->push(index); } template <typename T> inline void ParCompactionManager::mark_and_push(T* p) { ! T heap_oop = oopDesc::load_heap_oop(p); ! if (!oopDesc::is_null(heap_oop)) { ! oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); assert(ParallelScavengeHeap::heap()->is_in(obj), "should be in heap"); if (mark_bitmap()->is_unmarked(obj) && PSParallelCompact::mark_obj(obj)) { push(obj); } --- 71,83 ---- region_stack()->push(index); } template <typename T> inline void ParCompactionManager::mark_and_push(T* p) { ! T heap_oop = RawAccess<>::oop_load(p); ! if (!CompressedOops::is_null(heap_oop)) { ! oop obj = CompressedOops::decode_not_null(heap_oop); assert(ParallelScavengeHeap::heap()->is_in(obj), "should be in heap"); if (mark_bitmap()->is_unmarked(obj) && PSParallelCompact::mark_obj(obj)) { push(obj); }
< prev index next >