class jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 extends jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3
super_class: jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm
{
private static final int BM_BACKWARD_SEARCH_LENGTH_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
0: .line 194
aload 0 /* this */
invokespecial jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm.<init>:()V
return
end local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/regexp/joni/SearchAlgorithm$3;
public final java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
0: .line 198
ldc "EXACT_BM"
areturn
end local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/regexp/joni/SearchAlgorithm$3;
public final int search(jdk.nashorn.internal.runtime.regexp.joni.Regex, char[], int, int, int);
descriptor: (Ljdk/nashorn/internal/runtime/regexp/joni/Regex;[CIII)I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=14, args_size=6
start local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
start local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
start local 2 // char[] text
start local 3 // int textP
start local 4 // int textEnd
start local 5 // int textRange
0: .line 203
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.exact:[C
astore 6 /* target */
start local 6 // char[] target
1: .line 204
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.exactP:I
istore 7 /* targetP */
start local 7 // int targetP
2: .line 205
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.exactEnd:I
istore 8 /* targetEnd */
start local 8 // int targetEnd
3: .line 207
iload 5 /* textRange */
iload 8 /* targetEnd */
iload 7 /* targetP */
isub
iadd
iconst_1
isub
istore 9 /* end */
start local 9 // int end
4: .line 208
iload 9 /* end */
iload 4 /* textEnd */
if_icmple 6
5: .line 209
iload 4 /* textEnd */
istore 9 /* end */
6: .line 212
StackMap locals: jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 jdk.nashorn.internal.runtime.regexp.joni.Regex char[] int int int char[] int int int
StackMap stack:
iload 8 /* targetEnd */
iconst_1
isub
istore 10 /* tail */
start local 10 // int tail
7: .line 213
iload 3 /* textP */
iload 8 /* targetEnd */
iload 7 /* targetP */
isub
iadd
iconst_1
isub
istore 11 /* s */
start local 11 // int s
8: .line 215
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMap:[I
ifnonnull 28
9: .line 216
goto 18
10: .line 217
StackMap locals: int int
StackMap stack:
iload 11 /* s */
istore 12 /* p */
start local 12 // int p
11: .line 218
iload 10 /* tail */
istore 13 /* t */
start local 13 // int t
12: .line 220
goto 16
13: .line 221
StackMap locals: int int
StackMap stack:
iload 13 /* t */
iload 7 /* targetP */
if_icmpne 15
14: .line 222
iload 12 /* p */
ireturn
15: .line 224
StackMap locals:
StackMap stack:
iinc 12 /* p */ -1
iinc 13 /* t */ -1
16: .line 220
StackMap locals:
StackMap stack:
aload 2 /* text */
iload 12 /* p */
caload
aload 6 /* target */
iload 13 /* t */
caload
if_icmpeq 13
17: .line 227
iload 11 /* s */
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.map:[B
aload 2 /* text */
iload 11 /* s */
caload
sipush 255
iand
baload
iadd
istore 11 /* s */
end local 13 // int t
end local 12 // int p
18: .line 216
StackMap locals:
StackMap stack:
iload 11 /* s */
iload 9 /* end */
if_icmplt 10
19: .line 229
goto 29
20: .line 231
StackMap locals:
StackMap stack:
iload 11 /* s */
istore 12 /* p */
start local 12 // int p
21: .line 232
iload 10 /* tail */
istore 13 /* t */
start local 13 // int t
22: .line 234
goto 26
23: .line 235
StackMap locals: int int
StackMap stack:
iload 13 /* t */
iload 7 /* targetP */
if_icmpne 25
24: .line 236
iload 12 /* p */
ireturn
25: .line 238
StackMap locals:
StackMap stack:
iinc 12 /* p */ -1
iinc 13 /* t */ -1
26: .line 234
StackMap locals:
StackMap stack:
aload 2 /* text */
iload 12 /* p */
caload
aload 6 /* target */
iload 13 /* t */
caload
if_icmpeq 23
27: .line 241
iload 11 /* s */
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMap:[I
aload 2 /* text */
iload 11 /* s */
caload
sipush 255
iand
iaload
iadd
istore 11 /* s */
end local 13 // int t
end local 12 // int p
28: .line 230
StackMap locals:
StackMap stack:
iload 11 /* s */
iload 9 /* end */
if_icmplt 20
29: .line 244
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 11 // int s
end local 10 // int tail
end local 9 // int end
end local 8 // int targetEnd
end local 7 // int targetP
end local 6 // char[] target
end local 5 // int textRange
end local 4 // int textEnd
end local 3 // int textP
end local 2 // char[] text
end local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
end local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Ljdk/nashorn/internal/runtime/regexp/joni/SearchAlgorithm$3;
0 30 1 regex Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
0 30 2 text [C
0 30 3 textP I
0 30 4 textEnd I
0 30 5 textRange I
1 30 6 target [C
2 30 7 targetP I
3 30 8 targetEnd I
4 30 9 end I
7 30 10 tail I
8 30 11 s I
11 18 12 p I
12 18 13 t I
21 28 12 p I
22 28 13 t I
MethodParameters:
Name Flags
regex final
text final
textP final
textEnd final
textRange final
public final int searchBackward(jdk.nashorn.internal.runtime.regexp.joni.Regex, char[], int, int, int, int, int, int);
descriptor: (Ljdk/nashorn/internal/runtime/regexp/joni/Regex;[CIIIIII)I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=9, locals=15, args_size=9
start local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
start local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
start local 2 // char[] text
start local 3 // int textP
start local 4 // int adjustText
start local 5 // int textEnd
start local 6 // int textStart
start local 7 // int s_
start local 8 // int range_
0: .line 251
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.exact:[C
astore 9 /* target */
start local 9 // char[] target
1: .line 252
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.exactP:I
istore 10 /* targetP */
start local 10 // int targetP
2: .line 253
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.exactEnd:I
istore 11 /* targetEnd */
start local 11 // int targetEnd
3: .line 255
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMapBackward:[I
ifnonnull 7
4: .line 256
iload 7 /* s_ */
iload 8 /* range_ */
isub
bipush 100
if_icmpge 6
5: .line 258
getstatic jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3.SLOW:Ljdk/nashorn/internal/runtime/regexp/joni/SearchAlgorithm;
aload 1 /* regex */
aload 2 /* text */
iload 3 /* textP */
iload 4 /* adjustText */
iload 5 /* textEnd */
iload 6 /* textStart */
iload 7 /* s_ */
iload 8 /* range_ */
invokevirtual jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm.searchBackward:(Ljdk/nashorn/internal/runtime/regexp/joni/Regex;[CIIIIII)I
ireturn
6: .line 260
StackMap locals: char[] int int
StackMap stack:
aload 0 /* this */
aload 1 /* regex */
aload 9 /* target */
iload 10 /* targetP */
iload 11 /* targetEnd */
invokevirtual jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3.setBmBackwardSkip:(Ljdk/nashorn/internal/runtime/regexp/joni/Regex;[CII)V
7: .line 263
StackMap locals:
StackMap stack:
iload 5 /* textEnd */
iload 11 /* targetEnd */
iload 10 /* targetP */
isub
isub
istore 12 /* s */
start local 12 // int s
8: .line 265
iload 6 /* textStart */
iload 12 /* s */
if_icmpge 19
9: .line 266
iload 6 /* textStart */
istore 12 /* s */
10: .line 269
goto 19
11: .line 270
StackMap locals: int
StackMap stack:
iload 12 /* s */
istore 13 /* p */
start local 13 // int p
12: .line 271
iload 10 /* targetP */
istore 14 /* t */
start local 14 // int t
13: .line 272
goto 15
14: .line 273
StackMap locals: int int
StackMap stack:
iinc 13 /* p */ 1
iinc 14 /* t */ 1
15: .line 272
StackMap locals:
StackMap stack:
iload 14 /* t */
iload 11 /* targetEnd */
if_icmpge 16
aload 2 /* text */
iload 13 /* p */
caload
aload 9 /* target */
iload 14 /* t */
caload
if_icmpeq 14
16: .line 275
StackMap locals:
StackMap stack:
iload 14 /* t */
iload 11 /* targetEnd */
if_icmpne 18
17: .line 276
iload 12 /* s */
ireturn
18: .line 279
StackMap locals:
StackMap stack:
iload 12 /* s */
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMapBackward:[I
aload 2 /* text */
iload 12 /* s */
caload
sipush 255
iand
iaload
isub
istore 12 /* s */
end local 14 // int t
end local 13 // int p
19: .line 269
StackMap locals:
StackMap stack:
iload 12 /* s */
iload 3 /* textP */
if_icmpge 11
20: .line 281
iconst_m1
ireturn
end local 12 // int s
end local 11 // int targetEnd
end local 10 // int targetP
end local 9 // char[] target
end local 8 // int range_
end local 7 // int s_
end local 6 // int textStart
end local 5 // int textEnd
end local 4 // int adjustText
end local 3 // int textP
end local 2 // char[] text
end local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
end local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljdk/nashorn/internal/runtime/regexp/joni/SearchAlgorithm$3;
0 21 1 regex Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
0 21 2 text [C
0 21 3 textP I
0 21 4 adjustText I
0 21 5 textEnd I
0 21 6 textStart I
0 21 7 s_ I
0 21 8 range_ I
1 21 9 target [C
2 21 10 targetP I
3 21 11 targetEnd I
8 21 12 s I
12 19 13 p I
13 19 14 t I
MethodParameters:
Name Flags
regex final
text final
textP final
adjustText final
textEnd final
textStart final
s_ final
range_ final
private void setBmBackwardSkip(jdk.nashorn.internal.runtime.regexp.joni.Regex, char[], int, int);
descriptor: (Ljdk/nashorn/internal/runtime/regexp/joni/Regex;[CII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=5
start local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
start local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
start local 2 // char[] chars
start local 3 // int p
start local 4 // int end
0: .line 287
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMapBackward:[I
ifnonnull 4
1: .line 288
sipush 256
newarray 10
astore 5 /* skip */
start local 5 // int[] skip
2: .line 289
aload 1 /* regex */
aload 5 /* skip */
putfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMapBackward:[I
3: .line 290
goto 5
end local 5 // int[] skip
4: .line 291
StackMap locals:
StackMap stack:
aload 1 /* regex */
getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.intMapBackward:[I
astore 5 /* skip */
start local 5 // int[] skip
5: .line 294
StackMap locals: int[]
StackMap stack:
iload 4 /* end */
iload 3 /* p */
isub
istore 6 /* len */
start local 6 // int len
6: .line 296
iconst_0
istore 7 /* i */
start local 7 // int i
7: goto 10
8: .line 297
StackMap locals: int int
StackMap stack:
aload 5 /* skip */
iload 7 /* i */
iload 6 /* len */
iastore
9: .line 296
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 7 /* i */
sipush 256
if_icmplt 8
end local 7 // int i
11: .line 299
iload 6 /* len */
iconst_1
isub
istore 7 /* i */
start local 7 // int i
12: goto 15
13: .line 300
StackMap locals:
StackMap stack:
aload 5 /* skip */
aload 2 /* chars */
iload 7 /* i */
caload
sipush 255
iand
iload 7 /* i */
iastore
14: .line 299
iinc 7 /* i */ -1
StackMap locals:
StackMap stack:
15: iload 7 /* i */
ifgt 13
end local 7 // int i
16: .line 302
return
end local 6 // int len
end local 5 // int[] skip
end local 4 // int end
end local 3 // int p
end local 2 // char[] chars
end local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
end local 0 // jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3 this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/nashorn/internal/runtime/regexp/joni/SearchAlgorithm$3;
0 17 1 regex Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
0 17 2 chars [C
0 17 3 p I
0 17 4 end I
2 4 5 skip [I
5 17 5 skip [I
6 17 6 len I
7 11 7 i I
12 16 7 i I
MethodParameters:
Name Flags
regex final
chars final
p final
end final
}
SourceFile: "SearchAlgorithm.java"
EnclosingMethod: jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm
NestHost: jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm
InnerClasses:
jdk.nashorn.internal.runtime.regexp.joni.SearchAlgorithm$3