8192892: Improve JrtPath::getResolved fast-path test
8175891: JrtPath::resolve off-by-one pre-sizing cause for memory pressure Reviewed-by: sundar, jlaskey
This commit is contained in:
parent
5d1a0bf421
commit
11a8bac640
@ -274,7 +274,7 @@ final class JrtPath implements Path {
|
|||||||
if (o.path.length() == 0) {
|
if (o.path.length() == 0) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
StringBuilder sb = new StringBuilder(path.length() + o.path.length());
|
StringBuilder sb = new StringBuilder(path.length() + o.path.length() + 1);
|
||||||
sb.append(path);
|
sb.append(path);
|
||||||
if (path.charAt(path.length() - 1) != '/')
|
if (path.charAt(path.length() - 1) != '/')
|
||||||
sb.append('/');
|
sb.append('/');
|
||||||
@ -478,12 +478,15 @@ final class JrtPath implements Path {
|
|||||||
|
|
||||||
// Remove DotSlash(./) and resolve DotDot (..) components
|
// Remove DotSlash(./) and resolve DotDot (..) components
|
||||||
private String getResolved() {
|
private String getResolved() {
|
||||||
if (path.length() == 0) {
|
int length = path.length();
|
||||||
|
if (length == 0 || (path.indexOf("./") == -1 && path.charAt(length - 1) != '.')) {
|
||||||
return path;
|
return path;
|
||||||
|
} else {
|
||||||
|
return resolvePath();
|
||||||
}
|
}
|
||||||
if (path.indexOf('.') == -1) {
|
|
||||||
return path;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String resolvePath() {
|
||||||
int length = path.length();
|
int length = path.length();
|
||||||
char[] to = new char[length];
|
char[] to = new char[length];
|
||||||
int nc = getNameCount();
|
int nc = getNameCount();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user