8347397: Cleanup of JDK-8169880

Reviewed-by: liach, alanb
This commit is contained in:
Peter Levart 2025-01-10 14:47:01 +00:00
parent c5c4efdaa1
commit beb0e607d3

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1994, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1994, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -1205,10 +1205,6 @@ public final class Class<T> implements java.io.Serializable,
private Class<?>[] getInterfaces(boolean cloneArray) { private Class<?>[] getInterfaces(boolean cloneArray) {
ReflectionData<T> rd = reflectionData(); ReflectionData<T> rd = reflectionData();
if (rd == null) {
// no cloning required
return getInterfaces0();
} else {
Class<?>[] interfaces = rd.interfaces; Class<?>[] interfaces = rd.interfaces;
if (interfaces == null) { if (interfaces == null) {
interfaces = getInterfaces0(); interfaces = getInterfaces0();
@ -1217,7 +1213,6 @@ public final class Class<T> implements java.io.Serializable,
// defensively copy if requested // defensively copy if requested
return cloneArray ? interfaces.clone() : interfaces; return cloneArray ? interfaces.clone() : interfaces;
} }
}
private native Class<?>[] getInterfaces0(); private native Class<?>[] getInterfaces0();
@ -2922,19 +2917,15 @@ public final class Class<T> implements java.io.Serializable,
private Field[] privateGetDeclaredFields(boolean publicOnly) { private Field[] privateGetDeclaredFields(boolean publicOnly) {
Field[] res; Field[] res;
ReflectionData<T> rd = reflectionData(); ReflectionData<T> rd = reflectionData();
if (rd != null) {
res = publicOnly ? rd.declaredPublicFields : rd.declaredFields; res = publicOnly ? rd.declaredPublicFields : rd.declaredFields;
if (res != null) return res; if (res != null) return res;
}
// No cached value available; request value from VM // No cached value available; request value from VM
res = Reflection.filterFields(this, getDeclaredFields0(publicOnly)); res = Reflection.filterFields(this, getDeclaredFields0(publicOnly));
if (rd != null) {
if (publicOnly) { if (publicOnly) {
rd.declaredPublicFields = res; rd.declaredPublicFields = res;
} else { } else {
rd.declaredFields = res; rd.declaredFields = res;
} }
}
return res; return res;
} }
@ -2944,10 +2935,8 @@ public final class Class<T> implements java.io.Serializable,
private Field[] privateGetPublicFields() { private Field[] privateGetPublicFields() {
Field[] res; Field[] res;
ReflectionData<T> rd = reflectionData(); ReflectionData<T> rd = reflectionData();
if (rd != null) {
res = rd.publicFields; res = rd.publicFields;
if (res != null) return res; if (res != null) return res;
}
// Use a linked hash set to ensure order is preserved and // Use a linked hash set to ensure order is preserved and
// fields from common super interfaces are not duplicated // fields from common super interfaces are not duplicated
@ -2968,9 +2957,7 @@ public final class Class<T> implements java.io.Serializable,
} }
res = fields.toArray(new Field[0]); res = fields.toArray(new Field[0]);
if (rd != null) {
rd.publicFields = res; rd.publicFields = res;
}
return res; return res;
} }
@ -2993,10 +2980,8 @@ public final class Class<T> implements java.io.Serializable,
private Constructor<T>[] privateGetDeclaredConstructors(boolean publicOnly) { private Constructor<T>[] privateGetDeclaredConstructors(boolean publicOnly) {
Constructor<T>[] res; Constructor<T>[] res;
ReflectionData<T> rd = reflectionData(); ReflectionData<T> rd = reflectionData();
if (rd != null) {
res = publicOnly ? rd.publicConstructors : rd.declaredConstructors; res = publicOnly ? rd.publicConstructors : rd.declaredConstructors;
if (res != null) return res; if (res != null) return res;
}
// No cached value available; request value from VM // No cached value available; request value from VM
if (isInterface()) { if (isInterface()) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@ -3005,13 +2990,11 @@ public final class Class<T> implements java.io.Serializable,
} else { } else {
res = getDeclaredConstructors0(publicOnly); res = getDeclaredConstructors0(publicOnly);
} }
if (rd != null) {
if (publicOnly) { if (publicOnly) {
rd.publicConstructors = res; rd.publicConstructors = res;
} else { } else {
rd.declaredConstructors = res; rd.declaredConstructors = res;
} }
}
return res; return res;
} }
@ -3027,19 +3010,15 @@ public final class Class<T> implements java.io.Serializable,
private Method[] privateGetDeclaredMethods(boolean publicOnly) { private Method[] privateGetDeclaredMethods(boolean publicOnly) {
Method[] res; Method[] res;
ReflectionData<T> rd = reflectionData(); ReflectionData<T> rd = reflectionData();
if (rd != null) {
res = publicOnly ? rd.declaredPublicMethods : rd.declaredMethods; res = publicOnly ? rd.declaredPublicMethods : rd.declaredMethods;
if (res != null) return res; if (res != null) return res;
}
// No cached value available; request value from VM // No cached value available; request value from VM
res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly)); res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly));
if (rd != null) {
if (publicOnly) { if (publicOnly) {
rd.declaredPublicMethods = res; rd.declaredPublicMethods = res;
} else { } else {
rd.declaredMethods = res; rd.declaredMethods = res;
} }
}
return res; return res;
} }
@ -3049,10 +3028,8 @@ public final class Class<T> implements java.io.Serializable,
private Method[] privateGetPublicMethods() { private Method[] privateGetPublicMethods() {
Method[] res; Method[] res;
ReflectionData<T> rd = reflectionData(); ReflectionData<T> rd = reflectionData();
if (rd != null) {
res = rd.publicMethods; res = rd.publicMethods;
if (res != null) return res; if (res != null) return res;
}
// No cached value available; compute value recursively. // No cached value available; compute value recursively.
// Start by fetching public declared methods... // Start by fetching public declared methods...
@ -3078,9 +3055,7 @@ public final class Class<T> implements java.io.Serializable,
} }
res = pms.toArray(); res = pms.toArray();
if (rd != null) {
rd.publicMethods = res; rd.publicMethods = res;
}
return res; return res;
} }