< prev index next >

src/share/vm/gc/g1/g1OopClosures.hpp

Print this page
rev 9974 : 8146395: Add inline qualifier in oop.hpp and fix inlining in gc files
Summary: Fix remaining issues after 8146401. Also fix windows VS2010 linkage problem (g1OopClosures.hpp).

*** 1,7 **** /* ! * Copyright (c) 2001, 2015, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2016, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 204,242 **** class G1Mux2Closure : public OopClosure { OopClosure* _c1; OopClosure* _c2; public: G1Mux2Closure(OopClosure *c1, OopClosure *c2); ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } }; // A closure that returns true if it is actually applied // to a reference class G1TriggerClosure : public OopClosure { bool _triggered; public: G1TriggerClosure(); bool triggered() const { return _triggered; } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } }; // A closure which uses a triggering closure to determine // whether to apply an oop closure. class G1InvokeIfNotTriggeredClosure: public OopClosure { G1TriggerClosure* _trigger_cl; OopClosure* _oop_cl; public: G1InvokeIfNotTriggeredClosure(G1TriggerClosure* t, OopClosure* oc); ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } }; class G1UpdateRSOrPushRefOopClosure: public OopClosure { G1CollectedHeap* _g1; G1RemSet* _g1_rem_set; --- 204,242 ---- class G1Mux2Closure : public OopClosure { OopClosure* _c1; OopClosure* _c2; public: G1Mux2Closure(OopClosure *c1, OopClosure *c2); ! template <class T> inline void do_oop_work(T* p); ! virtual inline void do_oop(oop* p); ! virtual inline void do_oop(narrowOop* p); }; // A closure that returns true if it is actually applied // to a reference class G1TriggerClosure : public OopClosure { bool _triggered; public: G1TriggerClosure(); bool triggered() const { return _triggered; } ! template <class T> inline void do_oop_work(T* p); ! virtual inline void do_oop(oop* p); ! virtual inline void do_oop(narrowOop* p); }; // A closure which uses a triggering closure to determine // whether to apply an oop closure. class G1InvokeIfNotTriggeredClosure: public OopClosure { G1TriggerClosure* _trigger_cl; OopClosure* _oop_cl; public: G1InvokeIfNotTriggeredClosure(G1TriggerClosure* t, OopClosure* oc); ! template <class T> inline void do_oop_work(T* p); ! virtual inline void do_oop(oop* p); ! virtual inline void do_oop(narrowOop* p); }; class G1UpdateRSOrPushRefOopClosure: public OopClosure { G1CollectedHeap* _g1; G1RemSet* _g1_rem_set;
*** 261,271 **** markOop m = obj->mark(); bool result = (m->is_marked() && ((oop)m->decode_pointer() == obj)); return result; } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } ! virtual void do_oop(oop* p) { do_oop_work(p); } }; #endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP --- 261,271 ---- markOop m = obj->mark(); bool result = (m->is_marked() && ((oop)m->decode_pointer() == obj)); return result; } ! template <class T> inline void do_oop_work(T* p); ! virtual inline void do_oop(narrowOop* p); ! virtual inline void do_oop(oop* p); }; #endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
< prev index next >