--- old/src/hotspot/share/gc/g1/g1OopClosures.inline.hpp 2018-03-25 12:59:21.339912517 +0200 +++ new/src/hotspot/share/gc/g1/g1OopClosures.inline.hpp 2018-03-25 12:59:21.164914885 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,7 @@ #include "gc/g1/heapRegionRemSet.hpp" #include "memory/iterator.inline.hpp" #include "oops/access.inline.hpp" +#include "oops/oop.inline.hpp" #include "runtime/prefetch.inline.hpp" template @@ -43,8 +44,8 @@ // stall. We'll try to prefetch the object (for write, given that // we might need to install the forwarding reference) and we'll // get back to it when pop it from the queue - Prefetch::write(obj->mark_addr(), 0); - Prefetch::read(obj->mark_addr(), (HeapWordSize*2)); + Prefetch::write(obj->mark_addr_raw(), 0); + Prefetch::read(obj->mark_addr_raw(), (HeapWordSize*2)); // slightly paranoid test; I'm trying to catch potential // problems before we go into push_on_queue to know where the @@ -232,7 +233,7 @@ const InCSetState state = _g1->in_cset_state(obj); if (state.is_in_cset()) { oop forwardee; - markOop m = obj->mark(); + markOop m = obj->mark_raw(); if (m->is_marked()) { forwardee = (oop) m->decode_pointer(); } else {