--- old/src/hotspot/share/oops/instanceMirrorKlass.inline.hpp 2018-06-20 11:50:33.476139214 +0200 +++ new/src/hotspot/share/oops/instanceMirrorKlass.inline.hpp 2018-06-20 11:50:33.256139222 +0200 @@ -33,30 +33,21 @@ #include "utilities/globalDefinitions.hpp" #include "utilities/macros.hpp" -template -void InstanceMirrorKlass::oop_oop_iterate_statics_specialized(oop obj, OopClosureType* closure) { +template +void InstanceMirrorKlass::oop_oop_iterate_statics(oop obj, OopClosureType* closure) { T* p = (T*)start_of_static_fields(obj); T* const end = p + java_lang_Class::static_oop_field_count(obj); for (; p < end; ++p) { - Devirtualizer::do_oop(closure, p); - } -} - -template -void InstanceMirrorKlass::oop_oop_iterate_statics(oop obj, OopClosureType* closure) { - if (UseCompressedOops) { - oop_oop_iterate_statics_specialized(obj, closure); - } else { - oop_oop_iterate_statics_specialized(obj, closure); + Devirtualizer::do_oop(closure, p); } } -template +template void InstanceMirrorKlass::oop_oop_iterate(oop obj, OopClosureType* closure) { - InstanceKlass::oop_oop_iterate(obj, closure); + InstanceKlass::oop_oop_iterate(obj, closure); - if (Devirtualizer::do_metadata(closure)) { + if (Devirtualizer::do_metadata(closure)) { Klass* klass = java_lang_Class::as_Klass(obj); // We'll get NULL for primitive mirrors. if (klass != NULL) { @@ -66,9 +57,9 @@ // loader data is claimed, this is done by calling do_cld explicitly. // For non-anonymous classes the call to do_cld is made when the class // loader itself is handled. - Devirtualizer::do_cld(closure, klass->class_loader_data()); + Devirtualizer::do_cld(closure, klass->class_loader_data()); } else { - Devirtualizer::do_klass(closure, klass); + Devirtualizer::do_klass(closure, klass); } } else { // We would like to assert here (as below) that if klass has been NULL, then @@ -83,22 +74,20 @@ } } - oop_oop_iterate_statics(obj, closure); + oop_oop_iterate_statics(obj, closure); } -#if INCLUDE_OOP_OOP_ITERATE_BACKWARDS -template +template void InstanceMirrorKlass::oop_oop_iterate_reverse(oop obj, OopClosureType* closure) { - InstanceKlass::oop_oop_iterate_reverse(obj, closure); + InstanceKlass::oop_oop_iterate_reverse(obj, closure); - InstanceMirrorKlass::oop_oop_iterate_statics(obj, closure); + InstanceMirrorKlass::oop_oop_iterate_statics(obj, closure); } -#endif // INCLUDE_OOP_OOP_ITERATE_BACKWARDS -template -void InstanceMirrorKlass::oop_oop_iterate_statics_specialized_bounded(oop obj, - OopClosureType* closure, - MemRegion mr) { +template +void InstanceMirrorKlass::oop_oop_iterate_statics_bounded(oop obj, + OopClosureType* closure, + MemRegion mr) { T* p = (T*)start_of_static_fields(obj); T* end = p + java_lang_Class::static_oop_field_count(obj); @@ -116,39 +105,25 @@ } for (;p < end; ++p) { - Devirtualizer::do_oop(closure, p); + Devirtualizer::do_oop(closure, p); } } -template -void InstanceMirrorKlass::oop_oop_iterate_statics_bounded(oop obj, OopClosureType* closure, MemRegion mr) { - if (UseCompressedOops) { - oop_oop_iterate_statics_specialized_bounded(obj, closure, mr); - } else { - oop_oop_iterate_statics_specialized_bounded(obj, closure, mr); - } -} - -template +template void InstanceMirrorKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) { - InstanceKlass::oop_oop_iterate_bounded(obj, closure, mr); + InstanceKlass::oop_oop_iterate_bounded(obj, closure, mr); - if (Devirtualizer::do_metadata(closure)) { + if (Devirtualizer::do_metadata(closure)) { if (mr.contains(obj)) { Klass* klass = java_lang_Class::as_Klass(obj); // We'll get NULL for primitive mirrors. if (klass != NULL) { - Devirtualizer::do_klass(closure, klass); + Devirtualizer::do_klass(closure, klass); } } } - oop_oop_iterate_statics_bounded(obj, closure, mr); + oop_oop_iterate_statics_bounded(obj, closure, mr); } -#define ALL_INSTANCE_MIRROR_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ - OOP_OOP_ITERATE_DEFN( InstanceMirrorKlass, OopClosureType, nv_suffix) \ - OOP_OOP_ITERATE_DEFN_BOUNDED( InstanceMirrorKlass, OopClosureType, nv_suffix) \ - OOP_OOP_ITERATE_DEFN_BACKWARDS(InstanceMirrorKlass, OopClosureType, nv_suffix) - #endif // SHARE_VM_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP