< prev index next >
src/hotspot/share/gc/cms/cmsOopClosures.inline.hpp
Print this page
*** 26,35 ****
--- 26,37 ----
#define SHARE_VM_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
#include "gc/cms/cmsOopClosures.hpp"
#include "gc/cms/concurrentMarkSweepGeneration.hpp"
#include "gc/shared/taskqueue.inline.hpp"
+ #include "oops/access.inline.hpp"
+ #include "oops/compressedOops.inline.hpp"
#include "oops/oop.inline.hpp"
// MetadataAwareOopClosure and MetadataAwareOopsInGenClosure are duplicated,
// until we get rid of OopsInGenClosure.
*** 45,57 ****
}
// Decode the oop and call do_oop on it.
#define DO_OOP_WORK_IMPL(cls) \
template <class T> void cls::do_oop_work(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); \
do_oop(obj); \
} \
}
#define DO_OOP_WORK_NV_IMPL(cls) \
--- 47,59 ----
}
// Decode the oop and call do_oop on it.
#define DO_OOP_WORK_IMPL(cls) \
template <class T> void cls::do_oop_work(T* p) { \
! T heap_oop = RawAccess<>::oop_load(p); \
! if (!CompressedOops::is_null(heap_oop)) { \
! oop obj = CompressedOops::decode_not_null(heap_oop); \
do_oop(obj); \
} \
}
#define DO_OOP_WORK_NV_IMPL(cls) \
< prev index next >