mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8245678: Avoid allocations in Executable.getAllGenericParameterTypes
Reviewed-by: jlaskey, redestad
This commit is contained in:
parent
742d35e08a
commit
bc822ffad8
1 changed files with 4 additions and 4 deletions
|
@ -307,12 +307,12 @@ public abstract class Executable extends AccessibleObject
|
||||||
final boolean realParamData = hasRealParameterData();
|
final boolean realParamData = hasRealParameterData();
|
||||||
final Type[] genericParamTypes = getGenericParameterTypes();
|
final Type[] genericParamTypes = getGenericParameterTypes();
|
||||||
final Type[] nonGenericParamTypes = getParameterTypes();
|
final Type[] nonGenericParamTypes = getParameterTypes();
|
||||||
final Type[] out = new Type[nonGenericParamTypes.length];
|
|
||||||
final Parameter[] params = getParameters();
|
|
||||||
int fromidx = 0;
|
|
||||||
// If we have real parameter data, then we use the
|
// If we have real parameter data, then we use the
|
||||||
// synthetic and mandate flags to our advantage.
|
// synthetic and mandate flags to our advantage.
|
||||||
if (realParamData) {
|
if (realParamData) {
|
||||||
|
final Type[] out = new Type[nonGenericParamTypes.length];
|
||||||
|
final Parameter[] params = getParameters();
|
||||||
|
int fromidx = 0;
|
||||||
for (int i = 0; i < out.length; i++) {
|
for (int i = 0; i < out.length; i++) {
|
||||||
final Parameter param = params[i];
|
final Parameter param = params[i];
|
||||||
if (param.isSynthetic() || param.isImplicit()) {
|
if (param.isSynthetic() || param.isImplicit()) {
|
||||||
|
@ -325,6 +325,7 @@ public abstract class Executable extends AccessibleObject
|
||||||
fromidx++;
|
fromidx++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return out;
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, use the non-generic parameter data.
|
// Otherwise, use the non-generic parameter data.
|
||||||
// Without method parameter reflection data, we have
|
// Without method parameter reflection data, we have
|
||||||
|
@ -334,7 +335,6 @@ public abstract class Executable extends AccessibleObject
|
||||||
return genericParamTypes.length == nonGenericParamTypes.length ?
|
return genericParamTypes.length == nonGenericParamTypes.length ?
|
||||||
genericParamTypes : nonGenericParamTypes;
|
genericParamTypes : nonGenericParamTypes;
|
||||||
}
|
}
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue