src/java.base/share/classes/jdk/internal/jrtfs/JrtPath.java
changeset 48039 a9160acae595
parent 47216 71c04702a3d5
child 48053 6dcbdc9f99fc
equal deleted inserted replaced
48038:3d4bd4d33a67 48039:a9160acae595
   272             return o;
   272             return o;
   273         }
   273         }
   274         if (o.path.length() == 0) {
   274         if (o.path.length() == 0) {
   275             return this;
   275             return this;
   276         }
   276         }
   277         StringBuilder sb = new StringBuilder(path.length() + o.path.length());
   277         StringBuilder sb = new StringBuilder(path.length() + o.path.length() + 1);
   278         sb.append(path);
   278         sb.append(path);
   279         if (path.charAt(path.length() - 1) != '/')
   279         if (path.charAt(path.length() - 1) != '/')
   280             sb.append('/');
   280             sb.append('/');
   281         sb.append(o.path);
   281         sb.append(o.path);
   282         return new JrtPath(jrtfs, sb.toString(), true);
   282         return new JrtPath(jrtfs, sb.toString(), true);
   476         return to.toString();
   476         return to.toString();
   477     }
   477     }
   478 
   478 
   479     // Remove DotSlash(./) and resolve DotDot (..) components
   479     // Remove DotSlash(./) and resolve DotDot (..) components
   480     private String getResolved() {
   480     private String getResolved() {
   481         if (path.length() == 0) {
   481         int length = path.length();
       
   482         if (length == 0 || (path.indexOf("./") == -1 && path.charAt(length - 1) != '.')) {
   482             return path;
   483             return path;
   483         }
   484         } else {
   484         if (path.indexOf('.') == -1) {
   485             return resolvePath();
   485             return path;
   486         }
   486         }
   487     }
       
   488 
       
   489     private String resolvePath() {
   487         int length = path.length();
   490         int length = path.length();
   488         char[] to = new char[length];
   491         char[] to = new char[length];
   489         int nc = getNameCount();
   492         int nc = getNameCount();
   490         int[] lastM = new int[nc];
   493         int[] lastM = new int[nc];
   491         int lastMOff = -1;
   494         int lastMOff = -1;