< 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 +1,7 @@
/*
- * 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -48,12 +48,10 @@
// 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"); }
@@ -118,23 +116,21 @@
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.
+ // 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);
- // Just handle the fields, don't care about reference processing.
+ // 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
+ 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 >