< prev index next >

src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp

Print this page

        

*** 29,38 **** --- 29,40 ---- #include "gc/g1/g1ConcurrentMarkBitMap.inline.hpp" #include "gc/g1/g1FullGCMarker.hpp" #include "gc/g1/g1StringDedup.hpp" #include "gc/g1/g1StringDedupQueue.hpp" #include "gc/shared/preservedMarks.inline.hpp" + #include "oops/access.inline.hpp" + #include "oops/compressedOops.inline.hpp" #include "utilities/debug.hpp" inline bool G1FullGCMarker::mark_object(oop obj) { // Not marking closed archive objects. if (G1ArchiveAllocator::is_closed_archive_object(obj)) {
*** 58,70 **** } return true; } template <class T> inline void G1FullGCMarker::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); if (mark_object(obj)) { _oop_stack.push(obj); assert(_bitmap->is_marked(obj), "Must be marked now - map self"); } else { assert(_bitmap->is_marked(obj) || G1ArchiveAllocator::is_closed_archive_object(obj), --- 60,72 ---- } return true; } template <class T> inline void G1FullGCMarker::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); if (mark_object(obj)) { _oop_stack.push(obj); assert(_bitmap->is_marked(obj), "Must be marked now - map self"); } else { assert(_bitmap->is_marked(obj) || G1ArchiveAllocator::is_closed_archive_object(obj),
< prev index next >