--- old/src/share/vm/gc/serial/markSweep.hpp 2017-04-25 11:32:44.216900911 +0200 +++ new/src/share/vm/gc/serial/markSweep.hpp 2017-04-25 11:32:44.068895093 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -50,6 +50,7 @@ // declared at end class PreservedMark; class MarkAndPushClosure; +class AdjustPointerClosure; class MarkSweep : AllStatic { // @@ -66,16 +67,6 @@ virtual void do_void(); }; - class AdjustPointerClosure: public OopsInGenClosure { - public: - template void do_oop_nv(T* p); - virtual void do_oop(oop* p); - virtual void do_oop(narrowOop* p); - - // This closure provides its own oop verification code. - debug_only(virtual bool should_verify_oops() { return false; }) - }; - // Used for java/lang/ref handling class IsAliveClosure: public BoolObjectClosure { public: @@ -201,6 +192,17 @@ } }; +class AdjustPointerClosure: public OopsInGenClosure { + public: + template void do_oop_nv(T* p); + virtual void do_oop(oop* p); + virtual void do_oop(narrowOop* p); + virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; } + + // This closure provides its own oop verification code. + debug_only(virtual bool should_verify_oops() { return false; }) +}; + class PreservedMark VALUE_OBJ_CLASS_SPEC { private: oop _obj;