--- old/src/share/vm/memory/referencePolicy.hpp 2015-05-13 13:58:47.306952944 +0200 +++ /dev/null 2015-03-18 17:10:38.111854831 +0100 @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2000, 2012, 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. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef SHARE_VM_MEMORY_REFERENCEPOLICY_HPP -#define SHARE_VM_MEMORY_REFERENCEPOLICY_HPP - -// referencePolicy is used to determine when soft reference objects -// should be cleared. - - -class ReferencePolicy : public CHeapObj { - public: - virtual bool should_clear_reference(oop p, jlong timestamp_clock) { - ShouldNotReachHere(); - return true; - } - - // Capture state (of-the-VM) information needed to evaluate the policy - virtual void setup() { /* do nothing */ } -}; - -class NeverClearPolicy : public ReferencePolicy { - public: - virtual bool should_clear_reference(oop p, jlong timestamp_clock) { - return false; - } -}; - -class AlwaysClearPolicy : public ReferencePolicy { - public: - virtual bool should_clear_reference(oop p, jlong timestamp_clock) { - return true; - } -}; - -class LRUCurrentHeapPolicy : public ReferencePolicy { - private: - jlong _max_interval; - - public: - LRUCurrentHeapPolicy(); - - // Capture state (of-the-VM) information needed to evaluate the policy - void setup(); - virtual bool should_clear_reference(oop p, jlong timestamp_clock); -}; - -class LRUMaxHeapPolicy : public ReferencePolicy { - private: - jlong _max_interval; - - public: - LRUMaxHeapPolicy(); - - // Capture state (of-the-VM) information needed to evaluate the policy - void setup(); - virtual bool should_clear_reference(oop p, jlong timestamp_clock); -}; - -#endif // SHARE_VM_MEMORY_REFERENCEPOLICY_HPP --- /dev/null 2015-03-18 17:10:38.111854831 +0100 +++ new/src/share/vm/gc/shared/referencePolicy.hpp 2015-05-13 13:58:47.123945340 +0200 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2000, 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. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_GC_SHARED_REFERENCEPOLICY_HPP +#define SHARE_VM_GC_SHARED_REFERENCEPOLICY_HPP + +// referencePolicy is used to determine when soft reference objects +// should be cleared. + + +class ReferencePolicy : public CHeapObj { + public: + virtual bool should_clear_reference(oop p, jlong timestamp_clock) { + ShouldNotReachHere(); + return true; + } + + // Capture state (of-the-VM) information needed to evaluate the policy + virtual void setup() { /* do nothing */ } +}; + +class NeverClearPolicy : public ReferencePolicy { + public: + virtual bool should_clear_reference(oop p, jlong timestamp_clock) { + return false; + } +}; + +class AlwaysClearPolicy : public ReferencePolicy { + public: + virtual bool should_clear_reference(oop p, jlong timestamp_clock) { + return true; + } +}; + +class LRUCurrentHeapPolicy : public ReferencePolicy { + private: + jlong _max_interval; + + public: + LRUCurrentHeapPolicy(); + + // Capture state (of-the-VM) information needed to evaluate the policy + void setup(); + virtual bool should_clear_reference(oop p, jlong timestamp_clock); +}; + +class LRUMaxHeapPolicy : public ReferencePolicy { + private: + jlong _max_interval; + + public: + LRUMaxHeapPolicy(); + + // Capture state (of-the-VM) information needed to evaluate the policy + void setup(); + virtual bool should_clear_reference(oop p, jlong timestamp_clock); +}; + +#endif // SHARE_VM_GC_SHARED_REFERENCEPOLICY_HPP