--- old/src/share/vm/oops/instanceRefKlass.hpp 2017-04-24 15:49:00.009066467 +0200 +++ new/src/share/vm/oops/instanceRefKlass.hpp 2017-04-24 15:48:59.885061592 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2016, 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,8 +50,6 @@ class InstanceRefKlass: public InstanceKlass { friend class InstanceKlass; - template - friend class InstanceRefKlassSpecialized; private: InstanceRefKlass(const ClassFileParser& parser) : InstanceKlass(parser, InstanceKlass::_misc_kind_reference) {} @@ -120,19 +118,17 @@ template 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. + // Do discovery while handling instance ref klasses, does reference + // processing only if a ReferenceProcessor has been supplied. template static void oop_oop_iterate_discovery(oop obj, ReferenceType type, OopClosureType* closure, Contains& contains); - // Just handle the fields, don't care about reference processing. + // Handle the fields, don't care about reference processing. template static void oop_oop_iterate_fields(oop obj, OopClosureType* closure, Contains& contains); -#ifdef ASSERT template - static void trace_reference_gc(const char *s, oop obj, T* referent_addr, T* next_addr, T* discovered_addr); -#endif + static void trace_reference_gc(const char *s, oop obj, T* referent_addr, T* next_addr, T* discovered_addr) NOT_DEBUG_RETURN; public: