class java.io.WinNTFileSystem extends java.io.FileSystem
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.io.WinNTFileSystem
super_class: java.io.FileSystem
{
private final char slash;
descriptor: C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final char altSlash;
descriptor: C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final char semicolon;
descriptor: C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String userDir;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static java.lang.String[] driveDirCache;
descriptor: [Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.io.ExpiringCache cache;
descriptor: Ljava/io/ExpiringCache;
flags: (0x0002) ACC_PRIVATE
private java.io.ExpiringCache prefixCache;
descriptor: Ljava/io/ExpiringCache;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: bipush 26
anewarray java.lang.String
putstatic java.io.WinNTFileSystem.driveDirCache:[Ljava/lang/String;
1: invokestatic java.io.WinNTFileSystem.initIDs:()V
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.io.FileSystem.<init>:()V
1: aload 0
new java.io.ExpiringCache
dup
invokespecial java.io.ExpiringCache.<init>:()V
putfield java.io.WinNTFileSystem.cache:Ljava/io/ExpiringCache;
2: aload 0
new java.io.ExpiringCache
dup
invokespecial java.io.ExpiringCache.<init>:()V
putfield java.io.WinNTFileSystem.prefixCache:Ljava/io/ExpiringCache;
3: invokestatic sun.security.action.GetPropertyAction.privilegedGetProperties:()Ljava/util/Properties;
astore 1
start local 1 4: aload 0
aload 1
ldc "file.separator"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
putfield java.io.WinNTFileSystem.slash:C
5: aload 0
aload 1
ldc "path.separator"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
putfield java.io.WinNTFileSystem.semicolon:C
6: aload 0
aload 0
getfield java.io.WinNTFileSystem.slash:C
bipush 92
if_icmpne 7
bipush 47
goto 8
StackMap locals: java.io.WinNTFileSystem java.util.Properties
StackMap stack: java.io.WinNTFileSystem
7: bipush 92
StackMap locals: java.io.WinNTFileSystem java.util.Properties
StackMap stack: java.io.WinNTFileSystem int
8: putfield java.io.WinNTFileSystem.altSlash:C
9: aload 0
aload 0
aload 1
ldc "user.dir"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.WinNTFileSystem.normalize:(Ljava/lang/String;)Ljava/lang/String;
putfield java.io.WinNTFileSystem.userDir:Ljava/lang/String;
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/io/WinNTFileSystem;
4 11 1 props Ljava/util/Properties;
private boolean isSlash(char);
descriptor: (C)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 92
if_icmpeq 1
iload 1
bipush 47
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/io/WinNTFileSystem;
0 2 1 c C
MethodParameters:
Name Flags
c
private boolean isLetter(char);
descriptor: (C)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 97
if_icmplt 1
iload 1
bipush 122
if_icmple 3
StackMap locals:
StackMap stack:
1: iload 1
bipush 65
if_icmplt 2
iload 1
bipush 90
if_icmple 3
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/WinNTFileSystem;
0 4 1 c C
MethodParameters:
Name Flags
c
private java.lang.String slashify(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifne 1
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpeq 1
new java.lang.StringBuilder
dup
aload 0
getfield java.io.WinNTFileSystem.slash:C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
1: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/io/WinNTFileSystem;
0 2 1 p Ljava/lang/String;
MethodParameters:
Name Flags
p
public char getSeparator();
descriptor: ()C
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.WinNTFileSystem.slash:C
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/WinNTFileSystem;
public char getPathSeparator();
descriptor: ()C
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.WinNTFileSystem.semicolon:C
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/WinNTFileSystem;
public java.lang.String normalize(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 1: aload 0
getfield java.io.WinNTFileSystem.slash:C
istore 3
start local 3 2: aload 0
getfield java.io.WinNTFileSystem.altSlash:C
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 17
6: StackMap locals: java.io.WinNTFileSystem java.lang.String int int int int int
StackMap stack:
aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
istore 7
start local 7 7: iload 7
iload 4
if_icmpne 11
8: aload 0
aload 1
iload 2
iload 5
iload 3
if_icmpne 9
iload 6
iconst_1
isub
goto 10
StackMap locals: java.io.WinNTFileSystem java.lang.String int int int int int int
StackMap stack: java.io.WinNTFileSystem java.lang.String int
9: iload 6
StackMap locals: java.io.WinNTFileSystem java.lang.String int int int int int int
StackMap stack: java.io.WinNTFileSystem java.lang.String int int
10: invokevirtual java.io.WinNTFileSystem.normalize:(Ljava/lang/String;II)Ljava/lang/String;
areturn
11: StackMap locals:
StackMap stack:
iload 7
iload 3
if_icmpne 13
iload 5
iload 3
if_icmpne 13
iload 6
iconst_1
if_icmple 13
12: aload 0
aload 1
iload 2
iload 6
iconst_1
isub
invokevirtual java.io.WinNTFileSystem.normalize:(Ljava/lang/String;II)Ljava/lang/String;
areturn
13: StackMap locals:
StackMap stack:
iload 7
bipush 58
if_icmpne 15
iload 6
iconst_1
if_icmple 15
14: aload 0
aload 1
iload 2
iconst_0
invokevirtual java.io.WinNTFileSystem.normalize:(Ljava/lang/String;II)Ljava/lang/String;
areturn
15: StackMap locals:
StackMap stack:
iload 7
istore 5
end local 7 16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 2
if_icmplt 6
end local 6 18: iload 5
iload 3
if_icmpne 19
aload 0
aload 1
iload 2
iload 2
iconst_1
isub
invokevirtual java.io.WinNTFileSystem.normalize:(Ljava/lang/String;II)Ljava/lang/String;
areturn
19: StackMap locals:
StackMap stack:
aload 1
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/io/WinNTFileSystem;
0 20 1 path Ljava/lang/String;
1 20 2 n I
2 20 3 slash C
3 20 4 altSlash C
4 20 5 prev C
5 18 6 i I
7 16 7 c C
MethodParameters:
Name Flags
path
private java.lang.String normalize(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 1
aload 1
areturn
1: StackMap locals:
StackMap stack:
iload 3
iconst_3
if_icmpge 2
iconst_0
istore 3
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.WinNTFileSystem.slash:C
istore 5
start local 5 3: new java.lang.StringBuilder
dup
iload 2
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 6
start local 6 4: iload 3
ifne 7
5: aload 0
aload 1
iload 2
aload 6
invokevirtual java.io.WinNTFileSystem.normalizePrefix:(Ljava/lang/String;ILjava/lang/StringBuilder;)I
istore 4
start local 4 6: goto 29
end local 4 7: StackMap locals: java.io.WinNTFileSystem java.lang.String int int top int java.lang.StringBuilder
StackMap stack:
iload 3
istore 4
start local 4 8: aload 6
aload 1
iconst_0
iload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
9: goto 29
10: StackMap locals: java.io.WinNTFileSystem java.lang.String int int int int java.lang.StringBuilder
StackMap stack:
aload 1
iload 4
iinc 4 1
invokevirtual java.lang.String.charAt:(I)C
istore 7
start local 7 11: aload 0
iload 7
invokevirtual java.io.WinNTFileSystem.isSlash:(C)Z
ifeq 28
12: goto 14
StackMap locals: int
StackMap stack:
13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
iload 2
if_icmpge 15
aload 0
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isSlash:(C)Z
ifne 13
15: StackMap locals:
StackMap stack:
iload 4
iload 2
if_icmpne 26
16: aload 6
invokevirtual java.lang.StringBuilder.length:()I
istore 8
start local 8 17: iload 8
iconst_2
if_icmpne 20
aload 6
iconst_1
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 58
if_icmpne 20
18: aload 6
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
19: goto 30
20: StackMap locals: int
StackMap stack:
iload 8
ifne 23
21: aload 6
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
22: goto 30
23: StackMap locals:
StackMap stack:
iload 8
iconst_1
if_icmpne 30
aload 0
aload 6
iconst_0
invokevirtual java.lang.StringBuilder.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isSlash:(C)Z
ifeq 30
24: aload 6
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
25: goto 30
end local 8 26: StackMap locals:
StackMap stack:
aload 6
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
27: goto 29
28: StackMap locals:
StackMap stack:
aload 6
iload 7
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 7 29: StackMap locals:
StackMap stack:
iload 4
iload 2
if_icmplt 10
30: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/io/WinNTFileSystem;
0 31 1 path Ljava/lang/String;
0 31 2 len I
0 31 3 off I
6 7 4 src I
8 31 4 src I
3 31 5 slash C
4 31 6 sb Ljava/lang/StringBuilder;
11 29 7 c C
17 26 8 sn I
MethodParameters:
Name Flags
path
len
off
private int normalizePrefix(java.lang.String, int, java.lang.StringBuilder);
descriptor: (Ljava/lang/String;ILjava/lang/StringBuilder;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 3
StackMap locals: int
StackMap stack:
2: iinc 4 1
StackMap locals:
StackMap stack:
3: iload 4
iload 2
if_icmpge 4
aload 0
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isSlash:(C)Z
ifne 2
4: StackMap locals:
StackMap stack:
iload 2
iload 4
isub
iconst_2
if_icmplt 12
5: aload 0
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
dup
istore 5
start local 5 6: invokevirtual java.io.WinNTFileSystem.isLetter:(C)Z
ifeq 12
7: aload 1
iload 4
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 12
8: aload 3
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
9: aload 3
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
10: iinc 4 2
11: goto 18
end local 5 12: StackMap locals:
StackMap stack:
iconst_0
istore 4
13: iload 2
iconst_2
if_icmplt 18
14: aload 0
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isSlash:(C)Z
ifeq 18
15: aload 0
aload 1
iconst_1
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isSlash:(C)Z
ifeq 18
16: iconst_1
istore 4
17: aload 3
aload 0
getfield java.io.WinNTFileSystem.slash:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
18: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/io/WinNTFileSystem;
0 19 1 path Ljava/lang/String;
0 19 2 len I
0 19 3 sb Ljava/lang/StringBuilder;
1 19 4 src I
6 12 5 c C
MethodParameters:
Name Flags
path
len
sb
public int prefixLength(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.WinNTFileSystem.slash:C
istore 2
start local 2 1: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 2: iload 3
ifne 3
iconst_0
ireturn
3: StackMap locals: int int
StackMap stack:
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 4: iload 3
iconst_1
if_icmple 5
aload 1
iconst_1
invokevirtual java.lang.String.charAt:(I)C
goto 6
StackMap locals: int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: iload 4
iload 2
if_icmpne 10
8: iload 5
iload 2
if_icmpne 9
iconst_2
ireturn
9: StackMap locals: int
StackMap stack:
iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual java.io.WinNTFileSystem.isLetter:(C)Z
ifeq 14
iload 5
bipush 58
if_icmpne 14
11: iload 3
iconst_2
if_icmple 13
aload 1
iconst_2
invokevirtual java.lang.String.charAt:(I)C
iload 2
if_icmpne 13
12: iconst_3
ireturn
13: StackMap locals:
StackMap stack:
iconst_2
ireturn
14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/io/WinNTFileSystem;
0 15 1 path Ljava/lang/String;
1 15 2 slash C
2 15 3 n I
4 15 4 c0 C
7 15 5 c1 C
MethodParameters:
Name Flags
path
public java.lang.String resolve(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 1: iload 3
ifne 2
aload 2
areturn
2: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.lang.String.length:()I
istore 4
start local 4 3: iload 4
ifne 4
aload 1
areturn
4: StackMap locals: int
StackMap stack:
aload 2
astore 5
start local 5 5: iconst_0
istore 6
start local 6 6: iload 3
istore 7
start local 7 7: iload 3
iconst_2
if_icmpne 9
aload 0
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isLetter:(C)Z
ifeq 9
aload 1
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 9
8: iconst_1
goto 10
StackMap locals: java.lang.String int int
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 8
start local 8 11: iload 4
iconst_1
if_icmple 21
aload 5
iconst_0
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpne 21
12: aload 5
iconst_1
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpne 15
13: iconst_2
istore 6
14: goto 17
StackMap locals: int
StackMap stack:
15: iload 8
ifne 17
16: iconst_1
istore 6
17: StackMap locals:
StackMap stack:
iload 4
iload 6
if_icmpne 21
18: aload 1
iload 3
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpne 20
19: aload 1
iconst_0
iload 3
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
20: StackMap locals:
StackMap stack:
aload 1
areturn
21: StackMap locals:
StackMap stack:
aload 1
iload 3
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpne 23
22: iinc 7 -1
23: StackMap locals:
StackMap stack:
iload 7
iload 4
iadd
iload 6
isub
istore 9
start local 9 24: aconst_null
astore 10
start local 10 25: aload 2
iload 6
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpeq 26
iload 8
ifeq 30
26: StackMap locals: int char[]
StackMap stack:
iload 9
newarray 5
astore 10
27: aload 1
iconst_0
iload 7
aload 10
iconst_0
invokevirtual java.lang.String.getChars:(II[CI)V
28: aload 2
iload 6
iload 4
aload 10
iload 7
invokevirtual java.lang.String.getChars:(II[CI)V
29: goto 34
30: StackMap locals:
StackMap stack:
iload 9
iconst_1
iadd
newarray 5
astore 10
31: aload 1
iconst_0
iload 7
aload 10
iconst_0
invokevirtual java.lang.String.getChars:(II[CI)V
32: aload 10
iload 7
aload 0
getfield java.io.WinNTFileSystem.slash:C
castore
33: aload 2
iload 6
iload 4
aload 10
iload 7
iconst_1
iadd
invokevirtual java.lang.String.getChars:(II[CI)V
34: StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 10
invokespecial java.lang.String.<init>:([C)V
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljava/io/WinNTFileSystem;
0 35 1 parent Ljava/lang/String;
0 35 2 child Ljava/lang/String;
1 35 3 pn I
3 35 4 cn I
5 35 5 c Ljava/lang/String;
6 35 6 childStart I
7 35 7 parentEnd I
11 35 8 isDirectoryRelative Z
24 35 9 strlen I
25 35 10 theChars [C
MethodParameters:
Name Flags
parent
child
public java.lang.String getDefaultParent();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield java.io.WinNTFileSystem.slash:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/WinNTFileSystem;
public java.lang.String fromURIPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 2
invokevirtual java.lang.String.length:()I
iconst_2
if_icmple 6
aload 2
iconst_2
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 6
2: aload 2
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
3: aload 2
invokevirtual java.lang.String.length:()I
iconst_3
if_icmple 8
aload 2
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 8
4: aload 2
iconst_0
aload 2
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
5: goto 8
StackMap locals: java.lang.String
StackMap stack:
6: aload 2
invokevirtual java.lang.String.length:()I
iconst_1
if_icmple 8
aload 2
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 8
7: aload 2
iconst_0
aload 2
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/io/WinNTFileSystem;
0 9 1 path Ljava/lang/String;
1 9 2 p Ljava/lang/String;
MethodParameters:
Name Flags
path
public boolean isAbsolute(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.getPrefixLength:()I
istore 2
start local 2 1: iload 2
iconst_2
if_icmpne 2
aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpeq 4
2: StackMap locals: int
StackMap stack:
iload 2
iconst_3
if_icmpeq 4
3: iconst_0
ireturn
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/WinNTFileSystem;
0 5 1 f Ljava/io/File;
1 5 2 pl I
MethodParameters:
Name Flags
f
public java.lang.String resolve(java.io.File);
descriptor: (Ljava/io/File;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual java.io.File.getPrefixLength:()I
istore 3
start local 3 2: iload 3
iconst_2
if_icmpne 4
aload 2
iconst_0
invokevirtual java.lang.String.charAt:(I)C
aload 0
getfield java.io.WinNTFileSystem.slash:C
if_icmpne 4
3: aload 2
areturn
4: StackMap locals: java.lang.String int
StackMap stack:
iload 3
iconst_3
if_icmpne 6
5: aload 2
areturn
6: StackMap locals:
StackMap stack:
iload 3
ifne 8
7: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.io.WinNTFileSystem.getUserPath:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
aload 2
invokevirtual java.io.WinNTFileSystem.slashify:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
8: StackMap locals:
StackMap stack:
iload 3
iconst_1
if_icmpne 13
9: aload 0
invokevirtual java.io.WinNTFileSystem.getUserPath:()Ljava/lang/String;
astore 4
start local 4 10: aload 0
aload 4
invokevirtual java.io.WinNTFileSystem.getDrive:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 11: aload 5
ifnull 12
new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
12: StackMap locals: java.lang.String java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 13: StackMap locals:
StackMap stack:
iload 3
iconst_2
if_icmpne 29
14: aload 0
invokevirtual java.io.WinNTFileSystem.getUserPath:()Ljava/lang/String;
astore 4
start local 4 15: aload 0
aload 4
invokevirtual java.io.WinNTFileSystem.getDrive:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 16: aload 5
ifnull 18
aload 2
aload 5
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 18
17: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
aload 2
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.io.WinNTFileSystem.slashify:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
18: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 2
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 19: aload 0
iload 6
invokevirtual java.io.WinNTFileSystem.getDriveDirectory:(C)Ljava/lang/String;
astore 7
start local 7 20: aload 7
ifnull 28
21: new java.lang.StringBuilder
dup
iload 6
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 2
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.io.WinNTFileSystem.slashify:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 22: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 9
start local 9 23: aload 9
ifnull 27
aload 9
aload 8
invokevirtual java.lang.SecurityManager.checkRead:(Ljava/lang/String;)V
24: goto 27
StackMap locals: java.io.WinNTFileSystem java.io.File java.lang.String int java.lang.String java.lang.String int java.lang.String java.lang.String java.lang.SecurityManager
StackMap stack: java.lang.SecurityException
25: pop
26: new java.lang.SecurityException
dup
new java.lang.StringBuilder
dup
ldc "Cannot resolve path "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 8
areturn
end local 9 end local 8 28: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
iload 6
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 2
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.io.WinNTFileSystem.slashify:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 7 end local 6 end local 5 end local 4 29: StackMap locals: java.io.WinNTFileSystem java.io.File java.lang.String int
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Unresolvable path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Ljava/io/WinNTFileSystem;
0 30 1 f Ljava/io/File;
1 30 2 path Ljava/lang/String;
2 30 3 pl I
10 13 4 up Ljava/lang/String;
11 13 5 ud Ljava/lang/String;
15 29 4 up Ljava/lang/String;
16 29 5 ud Ljava/lang/String;
19 29 6 drive C
20 29 7 dir Ljava/lang/String;
22 28 8 p Ljava/lang/String;
23 28 9 security Ljava/lang/SecurityManager;
Exception table:
from to target type
23 24 25 Class java.lang.SecurityException
MethodParameters:
Name Flags
f
private java.lang.String getUserPath();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
ldc "user.dir"
invokevirtual java.lang.SecurityManager.checkPropertyAccess:(Ljava/lang/String;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
aload 0
getfield java.io.WinNTFileSystem.userDir:Ljava/lang/String;
invokevirtual java.io.WinNTFileSystem.normalize:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/WinNTFileSystem;
1 4 1 sm Ljava/lang/SecurityManager;
private java.lang.String getDrive(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.io.WinNTFileSystem.prefixLength:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
iconst_3
if_icmpne 2
aload 1
iconst_0
iconst_2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 3
StackMap locals: int
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.String
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/WinNTFileSystem;
0 4 1 path Ljava/lang/String;
1 4 2 pl I
MethodParameters:
Name Flags
path
private static int driveIndex(char);
descriptor: (C)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 97
if_icmplt 1
iload 0
bipush 122
if_icmpgt 1
iload 0
bipush 97
isub
ireturn
1: StackMap locals:
StackMap stack:
iload 0
bipush 65
if_icmplt 2
iload 0
bipush 90
if_icmpgt 2
iload 0
bipush 65
isub
ireturn
2: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 d C
MethodParameters:
Name Flags
d
private native java.lang.String getDriveDirectory(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
drive
private java.lang.String getDriveDirectory(char);
descriptor: (C)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iload 1
invokestatic java.io.WinNTFileSystem.driveIndex:(C)I
istore 2
start local 2 1: iload 2
ifge 2
aconst_null
areturn
2: StackMap locals: int
StackMap stack:
getstatic java.io.WinNTFileSystem.driveDirCache:[Ljava/lang/String;
iload 2
aaload
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
areturn
4: StackMap locals: java.lang.String
StackMap stack:
aload 0
iload 2
iconst_1
iadd
invokevirtual java.io.WinNTFileSystem.getDriveDirectory:(I)Ljava/lang/String;
astore 3
5: getstatic java.io.WinNTFileSystem.driveDirCache:[Ljava/lang/String;
iload 2
aload 3
aastore
6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/io/WinNTFileSystem;
0 7 1 drive C
1 7 2 i I
3 7 3 s Ljava/lang/String;
MethodParameters:
Name Flags
drive
public java.lang.String canonicalize(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 1: iload 2
iconst_2
if_icmpne 8
2: aload 0
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isLetter:(C)Z
ifeq 8
3: aload 1
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 8
4: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 5: iload 3
bipush 65
if_icmplt 7
iload 3
bipush 90
if_icmpgt 7
6: aload 1
areturn
7: StackMap locals: int int
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
iload 3
bipush 32
isub
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 8: StackMap locals:
StackMap stack:
iload 2
iconst_3
if_icmpne 16
9: aload 0
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.io.WinNTFileSystem.isLetter:(C)Z
ifeq 16
10: aload 1
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 16
11: aload 1
iconst_2
invokevirtual java.lang.String.charAt:(I)C
bipush 92
if_icmpne 16
12: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 13: iload 3
bipush 65
if_icmplt 15
iload 3
bipush 90
if_icmpgt 15
14: aload 1
areturn
15: StackMap locals: int
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
iload 3
bipush 32
isub
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
bipush 92
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 16: StackMap locals:
StackMap stack:
getstatic java.io.WinNTFileSystem.useCanonCaches:Z
ifne 18
17: aload 0
aload 1
invokevirtual java.io.WinNTFileSystem.canonicalize0:(Ljava/lang/String;)Ljava/lang/String;
areturn
18: StackMap locals:
StackMap stack:
aload 0
getfield java.io.WinNTFileSystem.cache:Ljava/io/ExpiringCache;
aload 1
invokevirtual java.io.ExpiringCache.get:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 19: aload 3
ifnonnull 39
20: aconst_null
astore 4
start local 4 21: aconst_null
astore 5
start local 5 22: getstatic java.io.WinNTFileSystem.useCanonPrefixCache:Z
ifeq 30
23: aload 1
invokestatic java.io.WinNTFileSystem.parentOrNull:(Ljava/lang/String;)Ljava/lang/String;
astore 4
24: aload 4
ifnull 30
25: aload 0
getfield java.io.WinNTFileSystem.prefixCache:Ljava/io/ExpiringCache;
aload 4
invokevirtual java.io.ExpiringCache.get:(Ljava/lang/String;)Ljava/lang/String;
astore 5
26: aload 5
ifnull 30
27: aload 1
iconst_1
aload 4
invokevirtual java.lang.String.length:()I
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 6
start local 6 28: aload 0
aload 5
aload 6
invokevirtual java.io.WinNTFileSystem.canonicalizeWithPrefix:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
29: aload 0
getfield java.io.WinNTFileSystem.cache:Ljava/io/ExpiringCache;
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokevirtual java.io.ExpiringCache.put:(Ljava/lang/String;Ljava/lang/String;)V
end local 6 30: StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 3
ifnonnull 39
31: aload 0
aload 1
invokevirtual java.io.WinNTFileSystem.canonicalize0:(Ljava/lang/String;)Ljava/lang/String;
astore 3
32: aload 0
getfield java.io.WinNTFileSystem.cache:Ljava/io/ExpiringCache;
aload 1
aload 3
invokevirtual java.io.ExpiringCache.put:(Ljava/lang/String;Ljava/lang/String;)V
33: getstatic java.io.WinNTFileSystem.useCanonPrefixCache:Z
ifeq 39
aload 4
ifnull 39
34: aload 3
invokestatic java.io.WinNTFileSystem.parentOrNull:(Ljava/lang/String;)Ljava/lang/String;
astore 5
35: aload 5
ifnull 39
36: new java.io.File
dup
aload 3
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 37: aload 6
invokevirtual java.io.File.exists:()Z
ifeq 39
aload 6
invokevirtual java.io.File.isDirectory:()Z
ifne 39
38: aload 0
getfield java.io.WinNTFileSystem.prefixCache:Ljava/io/ExpiringCache;
aload 4
aload 5
invokevirtual java.io.ExpiringCache.put:(Ljava/lang/String;Ljava/lang/String;)V
end local 6 end local 5 end local 4 39: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Ljava/io/WinNTFileSystem;
0 40 1 path Ljava/lang/String;
1 40 2 len I
5 8 3 c C
13 16 3 c C
19 40 3 res Ljava/lang/String;
21 39 4 dir Ljava/lang/String;
22 39 5 resDir Ljava/lang/String;
28 30 6 filename Ljava/lang/String;
37 39 6 f Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
private native java.lang.String canonicalize0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
private java.lang.String canonicalizeWithPrefix(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
1: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokevirtual java.io.WinNTFileSystem.canonicalizeWithPrefix0:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/WinNTFileSystem;
0 3 1 canonicalPrefix Ljava/lang/String;
0 3 2 filename Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
canonicalPrefix
filename
private native java.lang.String canonicalizeWithPrefix0(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
canonicalPrefix
pathWithCanonicalPrefix
private static java.lang.String parentOrNull(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
getstatic java.io.File.separatorChar:C
istore 1
start local 1 2: bipush 47
istore 2
start local 2 3: aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 3
start local 3 4: iload 3
istore 4
start local 4 5: iconst_0
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: goto 30
8: StackMap locals: java.lang.String int int int int int int
StackMap stack:
aload 0
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 7
start local 7 9: iload 7
bipush 46
if_icmpne 14
10: iinc 5 1
iload 5
iconst_2
if_icmplt 12
11: aconst_null
areturn
12: StackMap locals: int
StackMap stack:
iload 6
ifne 29
13: aconst_null
areturn
14: StackMap locals:
StackMap stack:
iload 7
iload 1
if_icmpne 23
15: iload 5
iconst_1
if_icmpne 17
iload 6
ifne 17
16: aconst_null
areturn
17: StackMap locals:
StackMap stack:
iload 4
ifeq 21
18: iload 4
iload 3
iconst_1
isub
if_icmpge 21
19: aload 0
iload 4
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
iload 1
if_icmpeq 21
20: aload 0
iload 4
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
iload 2
if_icmpne 22
21: StackMap locals:
StackMap stack:
aconst_null
areturn
22: StackMap locals:
StackMap stack:
aload 0
iconst_0
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
23: StackMap locals:
StackMap stack:
iload 7
iload 2
if_icmpne 25
24: aconst_null
areturn
25: StackMap locals:
StackMap stack:
iload 7
bipush 42
if_icmpeq 26
iload 7
bipush 63
if_icmpne 27
26: StackMap locals:
StackMap stack:
aconst_null
areturn
27: StackMap locals:
StackMap stack:
iinc 6 1
28: iconst_0
istore 5
29: StackMap locals:
StackMap stack:
iinc 4 -1
end local 7 30: StackMap locals:
StackMap stack:
iload 4
ifgt 8
31: aconst_null
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 path Ljava/lang/String;
2 32 1 sep C
3 32 2 altSep C
4 32 3 last I
5 32 4 idx I
6 32 5 adjacentDots I
7 32 6 nonDotCount I
9 30 7 c C
MethodParameters:
Name Flags
path
public native int getBooleanAttributes(java.io.File);
descriptor: (Ljava/io/File;)I
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
public native boolean checkAccess(java.io.File, int);
descriptor: (Ljava/io/File;I)Z
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
access
public native long getLastModifiedTime(java.io.File);
descriptor: (Ljava/io/File;)J
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
public native long getLength(java.io.File);
descriptor: (Ljava/io/File;)J
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
public native boolean setPermission(java.io.File, int, boolean, boolean);
descriptor: (Ljava/io/File;IZZ)Z
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
access
enable
owneronly
public native boolean createFileExclusively(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
public native java.lang.String[] list(java.io.File);
descriptor: (Ljava/io/File;)[Ljava/lang/String;
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
public native boolean createDirectory(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
public native boolean setLastModifiedTime(java.io.File, long);
descriptor: (Ljava/io/File;J)Z
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
time
public native boolean setReadOnly(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
MethodParameters:
Name Flags
f
public boolean delete(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.WinNTFileSystem.cache:Ljava/io/ExpiringCache;
invokevirtual java.io.ExpiringCache.clear:()V
1: aload 0
getfield java.io.WinNTFileSystem.prefixCache:Ljava/io/ExpiringCache;
invokevirtual java.io.ExpiringCache.clear:()V
2: aload 0
aload 1
invokevirtual java.io.WinNTFileSystem.delete0:(Ljava/io/File;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/WinNTFileSystem;
0 3 1 f Ljava/io/File;
MethodParameters:
Name Flags
f
private native boolean delete0(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
f
public boolean rename(java.io.File, java.io.File);
descriptor: (Ljava/io/File;Ljava/io/File;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.io.WinNTFileSystem.cache:Ljava/io/ExpiringCache;
invokevirtual java.io.ExpiringCache.clear:()V
1: aload 0
getfield java.io.WinNTFileSystem.prefixCache:Ljava/io/ExpiringCache;
invokevirtual java.io.ExpiringCache.clear:()V
2: aload 0
aload 1
aload 2
invokevirtual java.io.WinNTFileSystem.rename0:(Ljava/io/File;Ljava/io/File;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/WinNTFileSystem;
0 3 1 f1 Ljava/io/File;
0 3 2 f2 Ljava/io/File;
MethodParameters:
Name Flags
f1
f2
private native boolean rename0(java.io.File, java.io.File);
descriptor: (Ljava/io/File;Ljava/io/File;)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
f1
f2
public java.io.File[] listRoots();
descriptor: ()[Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iconst_1
newarray 11
dup
iconst_0
invokestatic java.io.WinNTFileSystem.listRoots0:()I
i2l
lastore
invokestatic java.util.BitSet.valueOf:([J)Ljava/util/BitSet;
1: invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
2: aload 0
invokedynamic apply(Ljava/io/WinNTFileSystem;)Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
java/io/WinNTFileSystem.lambda$0(I)Ljava/io/File; (7)
(I)Ljava/io/File;
invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
3: aload 0
invokedynamic test(Ljava/io/WinNTFileSystem;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/io/WinNTFileSystem.lambda$1(Ljava/io/File;)Z (7)
(Ljava/io/File;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
4: invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
java/io/WinNTFileSystem.lambda$2(I)[Ljava/io/File; (6)
(I)[Ljava/io/File;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.io.File[]
5: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/io/WinNTFileSystem;
private static native int listRoots0();
descriptor: ()I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private boolean access(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
aload 1
invokevirtual java.lang.SecurityManager.checkRead:(Ljava/lang/String;)V
2: StackMap locals: java.lang.SecurityManager
StackMap stack:
iconst_1
ireturn
end local 2 3: StackMap locals: java.io.WinNTFileSystem java.lang.String
StackMap stack: java.lang.SecurityException
pop
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/WinNTFileSystem;
0 5 1 path Ljava/lang/String;
1 3 2 security Ljava/lang/SecurityManager;
Exception table:
from to target type
0 2 3 Class java.lang.SecurityException
MethodParameters:
Name Flags
path
public long getSpace(java.io.File, int);
descriptor: (Ljava/io/File;I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.io.File.exists:()Z
ifeq 2
1: aload 0
aload 1
iload 2
invokevirtual java.io.WinNTFileSystem.getSpace0:(Ljava/io/File;I)J
lreturn
2: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/WinNTFileSystem;
0 3 1 f Ljava/io/File;
0 3 2 t I
MethodParameters:
Name Flags
f
t
private native long getSpace0(java.io.File, int);
descriptor: (Ljava/io/File;I)J
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
f
t
private native int getNameMax0(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
path
public int getNameMax(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
ifnull 9
2: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 3: aload 3
invokevirtual java.io.File.isAbsolute:()Z
ifeq 9
4: aload 3
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getRoot:()Ljava/nio/file/Path;
astore 4
start local 4 5: aload 4
ifnull 9
6: aload 4
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 2
7: aload 2
ldc "\\"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 9
8: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
end local 4 end local 3 9: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 2
invokevirtual java.io.WinNTFileSystem.getNameMax0:(Ljava/lang/String;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/io/WinNTFileSystem;
0 10 1 path Ljava/lang/String;
1 10 2 s Ljava/lang/String;
3 9 3 f Ljava/io/File;
5 9 4 root Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
public int compare(java.io.File, java.io.File);
descriptor: (Ljava/io/File;Ljava/io/File;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
aload 2
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/WinNTFileSystem;
0 1 1 f1 Ljava/io/File;
0 1 2 f2 Ljava/io/File;
MethodParameters:
Name Flags
f1
f2
public int hashCode(java.io.File);
descriptor: (Ljava/io/File;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
ldc 1234321
ixor
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/WinNTFileSystem;
0 1 1 f Ljava/io/File;
MethodParameters:
Name Flags
f
private static native void initIDs();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private java.io.File lambda$0(int);
descriptor: (I)Ljava/io/File;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new java.io.File
dup
new java.lang.StringBuilder
dup
bipush 65
iload 1
iadd
i2c
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.io.WinNTFileSystem.slash:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/WinNTFileSystem;
0 1 1 i I
private boolean lambda$1(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.io.WinNTFileSystem.access:(Ljava/lang/String;)Z
ifeq 1
aload 1
invokevirtual java.io.File.exists:()Z
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/WinNTFileSystem;
0 3 1 f Ljava/io/File;
private static java.io.File[] lambda$2(int);
descriptor: (I)[Ljava/io/File;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray java.io.File
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "WinNTFileSystem.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles