< prev index next >
src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
Print this page
*** 51,60 ****
--- 51,61 ----
#include "gc/shared/vmGCOperations.hpp"
#include "gc/shared/weakProcessor.hpp"
#include "logging/log.hpp"
#include "memory/allocation.hpp"
#include "memory/resourceArea.hpp"
+ #include "oops/access.inline.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/atomic.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/prefetch.inline.hpp"
*** 1366,1376 ****
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
virtual void do_oop( oop* p) { do_oop_work(p); }
template <class T> void do_oop_work(T* p) {
if (!_cm->has_overflown()) {
! oop obj = oopDesc::load_decode_heap_oop(p);
_task->deal_with_reference(obj);
_ref_counter--;
if (_ref_counter == 0) {
// We have dealt with _ref_counter_limit references, pushing them
--- 1367,1377 ----
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
virtual void do_oop( oop* p) { do_oop_work(p); }
template <class T> void do_oop_work(T* p) {
if (!_cm->has_overflown()) {
! oop obj = RawAccess<>::oop_load(p);
_task->deal_with_reference(obj);
_ref_counter--;
if (_ref_counter == 0) {
// We have dealt with _ref_counter_limit references, pushing them
< prev index next >