< prev index next >

src/share/vm/oops/instanceRefKlass.hpp

Print this page
rev 12851 : 8138737: Remove oop_ms_adjust_pointers and use oop_iterate instead
Reviewed-by:
rev 12852 : [mq]: 8138737-remove-oop-ms-adjust-kbarrett-rev1

*** 1,7 **** /* ! * Copyright (c) 1997, 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. --- 1,7 ---- /* ! * 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 48,59 **** // and the pending list lock object in the same class is notified. class InstanceRefKlass: public InstanceKlass { friend class InstanceKlass; - template <bool nv, typename T, class OopClosureType, class Contains> - friend class InstanceRefKlassSpecialized; private: InstanceRefKlass(const ClassFileParser& parser) : InstanceKlass(parser, InstanceKlass::_misc_kind_reference) {} public: InstanceRefKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } --- 48,57 ----
*** 118,140 **** static void do_discovered(oop obj, OopClosureType* closure, Contains& contains); template <typename T, class OopClosureType> static bool try_discover(oop obj, ReferenceType type, OopClosureType* closure); ! // Default way of handling instance ref klasses, does reference ! // processing if a ReferenceProcessor has been supplied. template <bool nv, typename T, class OopClosureType, class Contains> static void oop_oop_iterate_discovery(oop obj, ReferenceType type, OopClosureType* closure, Contains& contains); ! // Just handle the fields, don't care about reference processing. template <bool nv, typename T, class OopClosureType, class Contains> static void oop_oop_iterate_fields(oop obj, OopClosureType* closure, Contains& contains); - #ifdef ASSERT template <typename T> ! static void trace_reference_gc(const char *s, oop obj, T* referent_addr, T* next_addr, T* discovered_addr); ! #endif public: ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL) ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL) --- 116,136 ---- static void do_discovered(oop obj, OopClosureType* closure, Contains& contains); template <typename T, class OopClosureType> static bool try_discover(oop obj, ReferenceType type, OopClosureType* closure); ! // Do discovery while handling instance ref klasses, does reference ! // processing only if a ReferenceProcessor has been supplied. template <bool nv, typename T, class OopClosureType, class Contains> static void oop_oop_iterate_discovery(oop obj, ReferenceType type, OopClosureType* closure, Contains& contains); ! // Handle the fields, don't care about reference processing. template <bool nv, typename T, class OopClosureType, class Contains> static void oop_oop_iterate_fields(oop obj, OopClosureType* closure, Contains& contains); template <typename T> ! static void trace_reference_gc(const char *s, oop obj, T* referent_addr, T* next_addr, T* discovered_addr) NOT_DEBUG_RETURN; public: ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL) ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL)
< prev index next >