8260337: Optimize ImageReader lookup, used by Class.getResource

Reviewed-by: jlaskey, sundar
This commit is contained in:
Claes Redestad 2021-02-09 15:32:36 +00:00
parent f0bd9db5c7
commit 2f893c2b83
8 changed files with 333 additions and 133 deletions

View file

@ -3048,15 +3048,19 @@ public final class Class<T> implements java.io.Serializable,
}
/**
* Add a package name prefix if the name is not absolute Remove leading "/"
* Add a package name prefix if the name is not absolute. Remove leading "/"
* if name is absolute
*/
private String resolveName(String name) {
if (!name.startsWith("/")) {
Class<?> c = isArray() ? elementType() : this;
String baseName = c.getPackageName();
String baseName = getPackageName();
if (baseName != null && !baseName.isEmpty()) {
name = baseName.replace('.', '/') + "/" + name;
int len = baseName.length() + 1 + name.length();
StringBuilder sb = new StringBuilder(len);
name = sb.append(baseName.replace('.', '/'))
.append('/')
.append(name)
.toString();
}
} else {
name = name.substring(1);