8192025: Less referential references

Reviewed-by: coleenp, eosterlund, mchung, ahgross, rhalade
This commit is contained in:
Kim Barrett 2018-01-18 22:17:11 -05:00
parent 9714f829c9
commit 1ac19a3166
8 changed files with 107 additions and 4 deletions

View file

@ -62,11 +62,13 @@ bool Klass::is_cloneable() const {
}
void Klass::set_is_cloneable() {
if (name() != vmSymbols::java_lang_invoke_MemberName()) {
_access_flags.set_is_cloneable_fast();
} else {
if (name() == vmSymbols::java_lang_invoke_MemberName()) {
assert(is_final(), "no subclasses allowed");
// MemberName cloning should not be intrinsified and always happen in JVM_Clone.
} else if (is_instance_klass() && InstanceKlass::cast(this)->reference_type() != REF_NONE) {
// Reference cloning should not be intrinsified and always happen in JVM_Clone.
} else {
_access_flags.set_is_cloneable_fast();
}
}