public class sun.misc.RegexpPool
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.RegexpPool
super_class: java.lang.Object
{
private sun.misc.RegexpNode prefixMachine;
descriptor: Lsun/misc/RegexpNode;
flags: (0x0002) ACC_PRIVATE
private sun.misc.RegexpNode suffixMachine;
descriptor: Lsun/misc/RegexpNode;
flags: (0x0002) ACC_PRIVATE
private static final int BIG;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private int lastDepth;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.misc.RegexpNode
dup
invokespecial sun.misc.RegexpNode.<init>:()V
putfield sun.misc.RegexpPool.prefixMachine:Lsun/misc/RegexpNode;
2: aload 0
new sun.misc.RegexpNode
dup
invokespecial sun.misc.RegexpNode.<init>:()V
putfield sun.misc.RegexpPool.suffixMachine:Lsun/misc/RegexpNode;
3: aload 0
ldc 2147483647
putfield sun.misc.RegexpPool.lastDepth:I
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/misc/RegexpPool;
public void add(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokevirtual sun.misc.RegexpPool.add:(Ljava/lang/String;Ljava/lang/Object;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/RegexpPool;
0 2 1 re Ljava/lang/String;
0 2 2 ret Ljava/lang/Object;
Exceptions:
throws sun.misc.REException
MethodParameters:
Name Flags
re
ret
public void replace(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_1
invokevirtual sun.misc.RegexpPool.add:(Ljava/lang/String;Ljava/lang/Object;Z)V
1: goto 3
StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/misc/RegexpPool;
0 4 1 re Ljava/lang/String;
0 4 2 ret Ljava/lang/Object;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
MethodParameters:
Name Flags
re
ret
public java.lang.Object delete(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield sun.misc.RegexpPool.prefixMachine:Lsun/misc/RegexpNode;
astore 3
start local 3 2: aload 3
astore 4
start local 4 3: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 5
start local 5 4: iconst_1
istore 7
start local 7 5: aload 1
ldc "*"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
6: aload 1
ldc "*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 8
7: StackMap locals: sun.misc.RegexpPool java.lang.String java.lang.Object sun.misc.RegexpNode sun.misc.RegexpNode int top int
StackMap stack:
iinc 5 1
8: StackMap locals:
StackMap stack:
iload 5
ifgt 10
9: aconst_null
areturn
10: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 11: goto 19
12: StackMap locals: sun.misc.RegexpPool java.lang.String java.lang.Object sun.misc.RegexpNode sun.misc.RegexpNode int int int
StackMap stack:
aload 3
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
ifnull 15
aload 3
getfield sun.misc.RegexpNode.depth:I
ldc 2147483647
if_icmpge 15
13: aload 3
getfield sun.misc.RegexpNode.exact:Z
ifeq 14
iload 6
iload 5
if_icmpne 15
14: StackMap locals:
StackMap stack:
aload 3
astore 4
15: StackMap locals:
StackMap stack:
iload 6
iload 5
if_icmplt 17
16: goto 20
17: StackMap locals:
StackMap stack:
aload 3
aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
invokevirtual sun.misc.RegexpNode.find:(C)Lsun/misc/RegexpNode;
astore 3
18: iinc 6 1
StackMap locals:
StackMap stack:
19: aload 3
ifnonnull 12
20: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.RegexpPool.suffixMachine:Lsun/misc/RegexpNode;
astore 3
21: iload 5
istore 6
goto 26
22: StackMap locals:
StackMap stack:
aload 3
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
ifnull 25
aload 3
getfield sun.misc.RegexpNode.depth:I
ldc 2147483647
if_icmpge 25
23: iconst_0
istore 7
24: aload 3
astore 4
25: StackMap locals:
StackMap stack:
aload 3
aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
invokevirtual sun.misc.RegexpNode.find:(C)Lsun/misc/RegexpNode;
astore 3
26: StackMap locals:
StackMap stack:
iinc 6 -1
iload 6
iflt 27
aload 3
ifnonnull 22
27: StackMap locals:
StackMap stack:
iload 7
ifeq 32
28: aload 1
aload 4
getfield sun.misc.RegexpNode.re:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
29: aload 4
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
astore 2
30: aload 4
aconst_null
putfield sun.misc.RegexpNode.result:Ljava/lang/Object;
31: goto 35
32: StackMap locals:
StackMap stack:
aload 1
aload 4
getfield sun.misc.RegexpNode.re:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
33: aload 4
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
astore 2
34: aload 4
aconst_null
putfield sun.misc.RegexpNode.result:Ljava/lang/Object;
35: StackMap locals:
StackMap stack:
aload 2
areturn
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 36 0 this Lsun/misc/RegexpPool;
0 36 1 re Ljava/lang/String;
1 36 2 o Ljava/lang/Object;
2 36 3 p Lsun/misc/RegexpNode;
3 36 4 best Lsun/misc/RegexpNode;
4 36 5 len I
11 36 6 i I
5 36 7 prefix Z
MethodParameters:
Name Flags
re
public java.lang.Object match(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc 2147483647
invokevirtual sun.misc.RegexpPool.matchAfter:(Ljava/lang/String;I)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/RegexpPool;
0 1 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
public java.lang.Object matchNext(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield sun.misc.RegexpPool.lastDepth:I
invokevirtual sun.misc.RegexpPool.matchAfter:(Ljava/lang/String;I)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/RegexpPool;
0 1 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
private void add(java.lang.String, java.lang.Object, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.lang.String.length:()I
istore 4
start local 4 1: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 42
if_icmpne 7
2: aload 0
getfield sun.misc.RegexpPool.suffixMachine:Lsun/misc/RegexpNode;
astore 5
start local 5 3: goto 5
4: StackMap locals: int sun.misc.RegexpNode
StackMap stack:
aload 5
aload 1
iinc 4 -1
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokevirtual sun.misc.RegexpNode.add:(C)Lsun/misc/RegexpNode;
astore 5
5: StackMap locals:
StackMap stack:
iload 4
iconst_1
if_icmpgt 4
6: goto 18
end local 5 7: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 8: aload 1
iload 4
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 42
if_icmpne 10
9: iinc 4 -1
goto 11
10: StackMap locals: sun.misc.RegexpPool java.lang.String java.lang.Object int int top int
StackMap stack:
iconst_1
istore 6
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.RegexpPool.prefixMachine:Lsun/misc/RegexpNode;
astore 5
start local 5 12: iconst_0
istore 7
start local 7 13: goto 16
14: StackMap locals: sun.misc.RegexpPool java.lang.String java.lang.Object int int sun.misc.RegexpNode int int
StackMap stack:
aload 5
aload 1
iload 7
invokevirtual java.lang.String.charAt:(I)C
invokevirtual sun.misc.RegexpNode.add:(C)Lsun/misc/RegexpNode;
astore 5
15: iinc 7 1
StackMap locals:
StackMap stack:
16: iload 7
iload 4
if_icmplt 14
end local 7 17: aload 5
iload 6
putfield sun.misc.RegexpNode.exact:Z
end local 6 18: StackMap locals:
StackMap stack:
aload 5
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
ifnull 20
iload 3
ifne 20
19: new sun.misc.REException
dup
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
ldc " is a duplicate"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial sun.misc.REException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 5
aload 1
putfield sun.misc.RegexpNode.re:Ljava/lang/String;
21: aload 5
aload 2
putfield sun.misc.RegexpNode.result:Ljava/lang/Object;
22: return
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 23 0 this Lsun/misc/RegexpPool;
0 23 1 re Ljava/lang/String;
0 23 2 ret Ljava/lang/Object;
0 23 3 replace Z
1 23 4 len I
3 7 5 p Lsun/misc/RegexpNode;
12 23 5 p Lsun/misc/RegexpNode;
8 18 6 exact Z
13 17 7 i I
Exceptions:
throws sun.misc.REException
MethodParameters:
Name Flags
re
ret
replace
private java.lang.Object matchAfter(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.misc.RegexpPool.prefixMachine:Lsun/misc/RegexpNode;
astore 3
start local 3 1: aload 3
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: aload 1
invokevirtual java.lang.String.length:()I
istore 7
start local 7 5: iload 7
ifgt 7
6: aconst_null
areturn
7: StackMap locals: sun.misc.RegexpPool java.lang.String int sun.misc.RegexpNode sun.misc.RegexpNode int int int
StackMap stack:
iconst_0
istore 8
start local 8 8: goto 19
9: StackMap locals: int
StackMap stack:
aload 3
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
ifnull 15
aload 3
getfield sun.misc.RegexpNode.depth:I
iload 2
if_icmpge 15
10: aload 3
getfield sun.misc.RegexpNode.exact:Z
ifeq 11
iload 8
iload 7
if_icmpne 15
11: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield sun.misc.RegexpNode.depth:I
putfield sun.misc.RegexpPool.lastDepth:I
12: aload 3
astore 4
13: iload 8
istore 5
14: iload 7
istore 6
15: StackMap locals:
StackMap stack:
iload 8
iload 7
if_icmplt 17
16: goto 20
17: StackMap locals:
StackMap stack:
aload 3
aload 1
iload 8
invokevirtual java.lang.String.charAt:(I)C
invokevirtual sun.misc.RegexpNode.find:(C)Lsun/misc/RegexpNode;
astore 3
18: iinc 8 1
StackMap locals:
StackMap stack:
19: aload 3
ifnonnull 9
20: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.RegexpPool.suffixMachine:Lsun/misc/RegexpNode;
astore 3
21: iload 7
istore 8
goto 28
22: StackMap locals:
StackMap stack:
aload 3
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
ifnull 27
aload 3
getfield sun.misc.RegexpNode.depth:I
iload 2
if_icmpge 27
23: aload 0
aload 3
getfield sun.misc.RegexpNode.depth:I
putfield sun.misc.RegexpPool.lastDepth:I
24: aload 3
astore 4
25: iconst_0
istore 5
26: iload 8
iconst_1
iadd
istore 6
27: StackMap locals:
StackMap stack:
aload 3
aload 1
iload 8
invokevirtual java.lang.String.charAt:(I)C
invokevirtual sun.misc.RegexpNode.find:(C)Lsun/misc/RegexpNode;
astore 3
28: StackMap locals:
StackMap stack:
iinc 8 -1
iload 8
iflt 29
aload 3
ifnonnull 22
29: StackMap locals:
StackMap stack:
aload 4
getfield sun.misc.RegexpNode.result:Ljava/lang/Object;
astore 9
start local 9 30: aload 9
ifnull 32
aload 9
instanceof sun.misc.RegexpTarget
ifeq 32
31: aload 9
checkcast sun.misc.RegexpTarget
aload 1
iload 5
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokeinterface sun.misc.RegexpTarget.found:(Ljava/lang/String;)Ljava/lang/Object;
astore 9
32: StackMap locals: java.lang.Object
StackMap stack:
aload 9
areturn
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 33 0 this Lsun/misc/RegexpPool;
0 33 1 s Ljava/lang/String;
0 33 2 lastMatchDepth I
1 33 3 p Lsun/misc/RegexpNode;
2 33 4 best Lsun/misc/RegexpNode;
3 33 5 bst I
4 33 6 bend I
5 33 7 len I
8 33 8 i I
30 33 9 o Ljava/lang/Object;
MethodParameters:
Name Flags
s
lastMatchDepth
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc 2147483647
putfield sun.misc.RegexpPool.lastDepth:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/RegexpPool;
public void print(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "Regexp pool:\n"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
1: aload 0
getfield sun.misc.RegexpPool.suffixMachine:Lsun/misc/RegexpNode;
getfield sun.misc.RegexpNode.firstchild:Lsun/misc/RegexpNode;
ifnull 5
2: aload 1
ldc " Suffix machine: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
3: aload 0
getfield sun.misc.RegexpPool.suffixMachine:Lsun/misc/RegexpNode;
getfield sun.misc.RegexpNode.firstchild:Lsun/misc/RegexpNode;
aload 1
invokevirtual sun.misc.RegexpNode.print:(Ljava/io/PrintStream;)V
4: aload 1
ldc "\n"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.RegexpPool.prefixMachine:Lsun/misc/RegexpNode;
getfield sun.misc.RegexpNode.firstchild:Lsun/misc/RegexpNode;
ifnull 9
6: aload 1
ldc " Prefix machine: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
7: aload 0
getfield sun.misc.RegexpPool.prefixMachine:Lsun/misc/RegexpNode;
getfield sun.misc.RegexpNode.firstchild:Lsun/misc/RegexpNode;
aload 1
invokevirtual sun.misc.RegexpNode.print:(Ljava/io/PrintStream;)V
8: aload 1
ldc "\n"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/misc/RegexpPool;
0 10 1 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
out
}
SourceFile: "RegexpPool.java"