diff -r 9ae8719efcae -r acffe6ff3ae7 src/hotspot/share/gc/g1/g1FullGCOopClosures.hpp --- a/src/hotspot/share/gc/g1/g1FullGCOopClosures.hpp Mon Mar 26 16:51:43 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1FullGCOopClosures.hpp Mon Mar 26 16:51:43 2018 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 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 @@ -79,43 +79,16 @@ void do_cld_nv(ClassLoaderData* cld); }; -class G1AdjustClosure : public OopClosure { +class G1AdjustClosure : public ExtendedOopClosure { + template static inline void adjust_pointer(T* p); public: - template static inline oop adjust_pointer(T* p); - virtual void do_oop(oop* p); - virtual void do_oop(narrowOop* p); -}; - -class G1AdjustAndRebuildClosure : public ExtendedOopClosure { - uint _worker_id; - size_t _compaction_delta; - G1CollectedHeap* _g1h; - - inline size_t calculate_compaction_delta(oop current, oop forwardee); - template inline T* add_compaction_delta(T* p); - -public: - G1AdjustAndRebuildClosure(uint worker_id); - - void update_compaction_delta(oop obj); - - template inline void add_reference(T* from_field, oop reference, uint worker_id); - template void do_oop_nv(T* p); + template void do_oop_nv(T* p) { adjust_pointer(p); } virtual void do_oop(oop* p); virtual void do_oop(narrowOop* p); virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; } }; -class G1AdjustObjectClosure { - G1AdjustAndRebuildClosure* _closure; - -public: - G1AdjustObjectClosure(G1AdjustAndRebuildClosure* cl) : _closure(cl) { } - - inline int adjust_object(oop obj); -}; - class G1VerifyOopClosure: public OopClosure { private: G1CollectedHeap* _g1h;