mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 10:04:42 +02:00
8129417: Oop iteration clean-up to remove oop_ms_follow_contents
Reviewed-by: pliden, ehelin
This commit is contained in:
parent
72c1fe89b2
commit
dada9bc32c
39 changed files with 362 additions and 454 deletions
|
@ -36,7 +36,7 @@
|
|||
#include "oops/typeArrayKlass.inline.hpp"
|
||||
#include "utilities/debug.hpp"
|
||||
|
||||
inline void MetadataAwareOopClosure::do_class_loader_data(ClassLoaderData* cld) {
|
||||
inline void MetadataAwareOopClosure::do_cld_nv(ClassLoaderData* cld) {
|
||||
assert(_klass_closure._oop_closure == this, "Must be");
|
||||
|
||||
bool claim = true; // Must claim the class loader data before processing.
|
||||
|
@ -45,11 +45,9 @@ inline void MetadataAwareOopClosure::do_class_loader_data(ClassLoaderData* cld)
|
|||
|
||||
inline void MetadataAwareOopClosure::do_klass_nv(Klass* k) {
|
||||
ClassLoaderData* cld = k->class_loader_data();
|
||||
do_class_loader_data(cld);
|
||||
do_cld_nv(cld);
|
||||
}
|
||||
|
||||
inline void MetadataAwareOopClosure::do_klass(Klass* k) { do_klass_nv(k); }
|
||||
|
||||
#ifdef ASSERT
|
||||
// This verification is applied to all visited oops.
|
||||
// The closures can turn is off by overriding should_verify_oops().
|
||||
|
@ -78,6 +76,10 @@ inline void Devirtualizer<true>::do_klass(OopClosureType* closure, Klass* k) {
|
|||
closure->do_klass_nv(k);
|
||||
}
|
||||
template <class OopClosureType>
|
||||
void Devirtualizer<true>::do_cld(OopClosureType* closure, ClassLoaderData* cld) {
|
||||
closure->do_cld_nv(cld);
|
||||
}
|
||||
template <class OopClosureType>
|
||||
inline bool Devirtualizer<true>::do_metadata(OopClosureType* closure) {
|
||||
// Make sure the non-virtual and the virtual versions match.
|
||||
assert(closure->do_metadata_nv() == closure->do_metadata(), "Inconsistency in do_metadata");
|
||||
|
@ -96,6 +98,10 @@ void Devirtualizer<false>::do_klass(OopClosureType* closure, Klass* k) {
|
|||
closure->do_klass(k);
|
||||
}
|
||||
template <class OopClosureType>
|
||||
void Devirtualizer<false>::do_cld(OopClosureType* closure, ClassLoaderData* cld) {
|
||||
closure->do_cld(cld);
|
||||
}
|
||||
template <class OopClosureType>
|
||||
bool Devirtualizer<false>::do_metadata(OopClosureType* closure) {
|
||||
return closure->do_metadata();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue