< prev index next >
src/hotspot/share/gc/g1/g1EvacFailure.cpp
Print this page
@@ -32,10 +32,12 @@
#include "gc/g1/g1OopClosures.inline.hpp"
#include "gc/g1/g1_globals.hpp"
#include "gc/g1/heapRegion.hpp"
#include "gc/g1/heapRegionRemSet.hpp"
#include "gc/shared/preservedMarks.inline.hpp"
+#include "oops/access.inline.hpp"
+#include "oops/compressedOops.inline.hpp"
class UpdateRSetDeferred : public ExtendedOopClosure {
private:
G1CollectedHeap* _g1;
DirtyCardQueue* _dcq;
@@ -49,16 +51,16 @@
virtual void do_oop( oop* p) { do_oop_work(p); }
template <class T> void do_oop_work(T* p) {
assert(_g1->heap_region_containing(p)->is_in_reserved(p), "paranoia");
assert(!_g1->heap_region_containing(p)->is_survivor(), "Unexpected evac failure in survivor region");
- T const o = oopDesc::load_heap_oop(p);
- if (oopDesc::is_null(o)) {
+ T const o = RawAccess<>::oop_load(p);
+ if (CompressedOops::is_null(o)) {
return;
}
- if (HeapRegion::is_in_same_region(p, oopDesc::decode_heap_oop(o))) {
+ if (HeapRegion::is_in_same_region(p, CompressedOops::decode(o))) {
return;
}
size_t card_index = _ct->index_for(p);
if (_ct->mark_card_deferred(card_index)) {
_dcq->enqueue((jbyte*)_ct->byte_for_index(card_index));
< prev index next >