public class org.hsqldb.lib.KMPSearchAlgorithm
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.lib.KMPSearchAlgorithm
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.hsqldb.lib.KMPSearchAlgorithm this
0: .line 91
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.hsqldb.lib.KMPSearchAlgorithm this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/lib/KMPSearchAlgorithm;
public static long search(java.io.InputStream, byte[], int[]);
descriptor: (Ljava/io/InputStream;[B[I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // java.io.InputStream inputStream
start local 1 // byte[] pattern
start local 2 // int[] table
0: .line 113
aload 0 /* inputStream */
ifnull 1
aload 1 /* pattern */
ifnull 1
aload 1 /* pattern */
arraylength
ifne 2
1: .line 114
StackMap locals:
StackMap stack:
ldc -1
lreturn
2: .line 118
StackMap locals:
StackMap stack:
aload 1 /* pattern */
arraylength
istore 3 /* patternLength */
start local 3 // int patternLength
3: .line 121
ldc -1
lstore 4 /* streamIndex */
start local 4 // long streamIndex
4: .line 124
iload 3 /* patternLength */
iconst_1
if_icmpne 13
5: .line 125
aload 1 /* pattern */
iconst_0
baload
istore 7 /* byteToFind */
start local 7 // int byteToFind
6: .line 127
goto 10
start local 6 // int currentByte
7: .line 128
StackMap locals: java.io.InputStream byte[] int[] int long int int
StackMap stack:
lload 4 /* streamIndex */
lconst_1
ladd
lstore 4 /* streamIndex */
8: .line 130
iload 6 /* currentByte */
iload 7 /* byteToFind */
if_icmpne 10
9: .line 131
lload 4 /* streamIndex */
lreturn
end local 6 // int currentByte
10: .line 127
StackMap locals: java.io.InputStream byte[] int[] int long top int
StackMap stack:
iconst_m1
aload 0 /* inputStream */
invokevirtual java.io.InputStream.read:()I
dup
istore 6 /* currentByte */
start local 6 // int currentByte
11: if_icmpne 7
12: .line 135
ldc -1
lreturn
end local 7 // int byteToFind
end local 6 // int currentByte
13: .line 138
StackMap locals: java.io.InputStream byte[] int[] int long
StackMap stack:
iconst_0
istore 7 /* patternIndex */
start local 7 // int patternIndex
14: .line 140
aload 2 /* table */
ifnonnull 26
15: .line 141
aload 1 /* pattern */
invokestatic org.hsqldb.lib.KMPSearchAlgorithm.computeTable:([B)[I
astore 2 /* table */
16: .line 144
goto 26
start local 6 // int currentByte
17: .line 145
StackMap locals: int int
StackMap stack:
lload 4 /* streamIndex */
lconst_1
ladd
lstore 4 /* streamIndex */
18: .line 147
iload 6 /* currentByte */
aload 1 /* pattern */
iload 7 /* patternIndex */
baload
if_icmpne 21
19: .line 148
iinc 7 /* patternIndex */ 1
20: .line 149
goto 24
StackMap locals:
StackMap stack:
21: iload 7 /* patternIndex */
ifle 24
22: .line 150
aload 2 /* table */
iload 7 /* patternIndex */
iaload
istore 7 /* patternIndex */
23: .line 152
iinc 7 /* patternIndex */ 1
24: .line 155
StackMap locals:
StackMap stack:
iload 7 /* patternIndex */
iload 3 /* patternLength */
if_icmpne 26
25: .line 156
lload 4 /* streamIndex */
iload 3 /* patternLength */
iconst_1
isub
i2l
lsub
lreturn
end local 6 // int currentByte
26: .line 144
StackMap locals: java.io.InputStream byte[] int[] int long top int
StackMap stack:
iconst_m1
aload 0 /* inputStream */
invokevirtual java.io.InputStream.read:()I
dup
istore 6 /* currentByte */
start local 6 // int currentByte
27: if_icmpne 17
28: .line 160
ldc -1
lreturn
end local 7 // int patternIndex
end local 6 // int currentByte
end local 4 // long streamIndex
end local 3 // int patternLength
end local 2 // int[] table
end local 1 // byte[] pattern
end local 0 // java.io.InputStream inputStream
LocalVariableTable:
Start End Slot Name Signature
0 29 0 inputStream Ljava/io/InputStream;
0 29 1 pattern [B
0 29 2 table [I
3 29 3 patternLength I
4 29 4 streamIndex J
7 10 6 currentByte I
11 13 6 currentByte I
17 26 6 currentByte I
27 29 6 currentByte I
6 13 7 byteToFind I
14 29 7 patternIndex I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inputStream final
pattern final
table
public static long search(java.io.Reader, char[], int[]);
descriptor: (Ljava/io/Reader;[C[I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // java.io.Reader reader
start local 1 // char[] pattern
start local 2 // int[] table
0: .line 182
aload 0 /* reader */
ifnull 1
aload 1 /* pattern */
ifnull 1
aload 1 /* pattern */
arraylength
ifne 2
1: .line 183
StackMap locals:
StackMap stack:
ldc -1
lreturn
2: .line 187
StackMap locals:
StackMap stack:
aload 1 /* pattern */
arraylength
istore 3 /* patternLength */
start local 3 // int patternLength
3: .line 190
ldc -1
lstore 4 /* streamIndex */
start local 4 // long streamIndex
4: .line 193
iload 3 /* patternLength */
iconst_1
if_icmpne 13
5: .line 194
aload 1 /* pattern */
iconst_0
caload
istore 7 /* characterToFind */
start local 7 // int characterToFind
6: .line 196
goto 10
start local 6 // int currentCharacter
7: .line 197
StackMap locals: java.io.Reader char[] int[] int long int int
StackMap stack:
lload 4 /* streamIndex */
lconst_1
ladd
lstore 4 /* streamIndex */
8: .line 199
iload 6 /* currentCharacter */
iload 7 /* characterToFind */
if_icmpne 10
9: .line 200
lload 4 /* streamIndex */
lreturn
end local 6 // int currentCharacter
10: .line 196
StackMap locals: java.io.Reader char[] int[] int long top int
StackMap stack:
iconst_m1
aload 0 /* reader */
invokevirtual java.io.Reader.read:()I
dup
istore 6 /* currentCharacter */
start local 6 // int currentCharacter
11: if_icmpne 7
12: .line 204
ldc -1
lreturn
end local 7 // int characterToFind
end local 6 // int currentCharacter
13: .line 207
StackMap locals: java.io.Reader char[] int[] int long
StackMap stack:
iconst_0
istore 7 /* patternIndex */
start local 7 // int patternIndex
14: .line 209
aload 2 /* table */
ifnonnull 26
15: .line 210
aload 1 /* pattern */
invokestatic org.hsqldb.lib.KMPSearchAlgorithm.computeTable:([C)[I
astore 2 /* table */
16: .line 213
goto 26
start local 6 // int currentCharacter
17: .line 214
StackMap locals: int int
StackMap stack:
lload 4 /* streamIndex */
lconst_1
ladd
lstore 4 /* streamIndex */
18: .line 216
iload 6 /* currentCharacter */
aload 1 /* pattern */
iload 7 /* patternIndex */
caload
if_icmpne 21
19: .line 217
iinc 7 /* patternIndex */ 1
20: .line 218
goto 24
StackMap locals:
StackMap stack:
21: iload 7 /* patternIndex */
ifle 24
22: .line 219
aload 2 /* table */
iload 7 /* patternIndex */
iaload
istore 7 /* patternIndex */
23: .line 221
iinc 7 /* patternIndex */ 1
24: .line 224
StackMap locals:
StackMap stack:
iload 7 /* patternIndex */
iload 3 /* patternLength */
if_icmpne 26
25: .line 225
lload 4 /* streamIndex */
iload 3 /* patternLength */
iconst_1
isub
i2l
lsub
lreturn
end local 6 // int currentCharacter
26: .line 213
StackMap locals: java.io.Reader char[] int[] int long top int
StackMap stack:
iconst_m1
aload 0 /* reader */
invokevirtual java.io.Reader.read:()I
dup
istore 6 /* currentCharacter */
start local 6 // int currentCharacter
27: if_icmpne 17
28: .line 229
ldc -1
lreturn
end local 7 // int patternIndex
end local 6 // int currentCharacter
end local 4 // long streamIndex
end local 3 // int patternLength
end local 2 // int[] table
end local 1 // char[] pattern
end local 0 // java.io.Reader reader
LocalVariableTable:
Start End Slot Name Signature
0 29 0 reader Ljava/io/Reader;
0 29 1 pattern [C
0 29 2 table [I
3 29 3 patternLength I
4 29 4 streamIndex J
7 10 6 currentCharacter I
11 13 6 currentCharacter I
17 26 6 currentCharacter I
27 29 6 currentCharacter I
6 13 7 characterToFind I
14 29 7 patternIndex I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reader final
pattern final
table
public static int search(byte[], byte[], int[], int);
descriptor: ([B[B[II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=10, args_size=4
start local 0 // byte[] source
start local 1 // byte[] pattern
start local 2 // int[] table
start local 3 // int start
0: .line 250
aload 0 /* source */
ifnull 1
aload 1 /* pattern */
ifnull 1
aload 1 /* pattern */
arraylength
ifne 2
1: .line 251
StackMap locals:
StackMap stack:
iconst_m1
ireturn
2: .line 255
StackMap locals:
StackMap stack:
aload 0 /* source */
arraylength
istore 4 /* sourceLength */
start local 4 // int sourceLength
3: .line 256
aload 1 /* pattern */
arraylength
istore 5 /* patternLength */
start local 5 // int patternLength
4: .line 259
iload 3 /* start */
istore 6 /* sourceIndex */
start local 6 // int sourceIndex
5: .line 261
iload 5 /* patternLength */
iconst_1
if_icmpne 13
6: .line 262
aload 1 /* pattern */
iconst_0
baload
istore 7 /* byteToFind */
start local 7 // int byteToFind
7: .line 264
goto 11
8: .line 265
StackMap locals: byte[] byte[] int[] int int int int int
StackMap stack:
aload 0 /* source */
iload 6 /* sourceIndex */
baload
iload 7 /* byteToFind */
if_icmpne 10
9: .line 266
iload 6 /* sourceIndex */
ireturn
10: .line 264
StackMap locals:
StackMap stack:
iinc 6 /* sourceIndex */ 1
StackMap locals:
StackMap stack:
11: iload 6 /* sourceIndex */
iload 4 /* sourceLength */
if_icmplt 8
12: .line 270
iconst_m1
ireturn
end local 7 // int byteToFind
13: .line 274
StackMap locals:
StackMap stack:
iload 3 /* start */
istore 7 /* matchStart */
start local 7 // int matchStart
14: .line 275
iconst_0
istore 8 /* patternIndex */
start local 8 // int patternIndex
15: .line 278
aload 2 /* table */
ifnonnull 27
16: .line 279
aload 1 /* pattern */
invokestatic org.hsqldb.lib.KMPSearchAlgorithm.computeTable:([B)[I
astore 2 /* table */
17: .line 283
goto 27
18: .line 285
StackMap locals: int int
StackMap stack:
aload 0 /* source */
iload 6 /* sourceIndex */
baload
aload 1 /* pattern */
iload 8 /* patternIndex */
baload
if_icmpne 21
19: .line 286
iinc 8 /* patternIndex */ 1
20: .line 287
goto 26
21: .line 288
StackMap locals:
StackMap stack:
aload 2 /* table */
iload 8 /* patternIndex */
iaload
istore 9 /* tableValue */
start local 9 // int tableValue
22: .line 290
iload 7 /* matchStart */
iload 8 /* patternIndex */
iload 9 /* tableValue */
isub
iadd
istore 7 /* matchStart */
23: .line 292
iload 8 /* patternIndex */
ifle 25
24: .line 293
iload 9 /* tableValue */
istore 8 /* patternIndex */
25: .line 296
StackMap locals: int
StackMap stack:
iinc 8 /* patternIndex */ 1
end local 9 // int tableValue
26: .line 299
StackMap locals:
StackMap stack:
iload 7 /* matchStart */
iload 8 /* patternIndex */
iadd
istore 6 /* sourceIndex */
27: .line 283
StackMap locals:
StackMap stack:
iload 6 /* sourceIndex */
iload 4 /* sourceLength */
if_icmpge 30
28: .line 284
iload 8 /* patternIndex */
iload 5 /* patternLength */
29: .line 283
if_icmplt 18
30: .line 302
StackMap locals:
StackMap stack:
iload 8 /* patternIndex */
iload 5 /* patternLength */
if_icmpne 32
31: .line 303
iload 7 /* matchStart */
ireturn
32: .line 305
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 8 // int patternIndex
end local 7 // int matchStart
end local 6 // int sourceIndex
end local 5 // int patternLength
end local 4 // int sourceLength
end local 3 // int start
end local 2 // int[] table
end local 1 // byte[] pattern
end local 0 // byte[] source
LocalVariableTable:
Start End Slot Name Signature
0 33 0 source [B
0 33 1 pattern [B
0 33 2 table [I
0 33 3 start I
3 33 4 sourceLength I
4 33 5 patternLength I
5 33 6 sourceIndex I
7 13 7 byteToFind I
14 33 7 matchStart I
15 33 8 patternIndex I
22 26 9 tableValue I
MethodParameters:
Name Flags
source final
pattern final
table
start final
public static int search(char[], char[], int[], int);
descriptor: ([C[C[II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=10, args_size=4
start local 0 // char[] source
start local 1 // char[] pattern
start local 2 // int[] table
start local 3 // int start
0: .line 323
aload 0 /* source */
ifnull 1
aload 1 /* pattern */
ifnull 1
aload 1 /* pattern */
arraylength
ifne 2
1: .line 324
StackMap locals:
StackMap stack:
iconst_m1
ireturn
2: .line 327
StackMap locals:
StackMap stack:
aload 0 /* source */
arraylength
istore 4 /* sourceLength */
start local 4 // int sourceLength
3: .line 328
aload 1 /* pattern */
arraylength
istore 5 /* patternLength */
start local 5 // int patternLength
4: .line 329
iload 3 /* start */
istore 6 /* sourceIndex */
start local 6 // int sourceIndex
5: .line 331
iload 5 /* patternLength */
iconst_1
if_icmpne 13
6: .line 332
aload 1 /* pattern */
iconst_0
caload
istore 7 /* characterToFind */
start local 7 // int characterToFind
7: .line 334
goto 11
8: .line 335
StackMap locals: char[] char[] int[] int int int int int
StackMap stack:
aload 0 /* source */
iload 6 /* sourceIndex */
caload
iload 7 /* characterToFind */
if_icmpne 10
9: .line 336
iload 6 /* sourceIndex */
ireturn
10: .line 334
StackMap locals:
StackMap stack:
iinc 6 /* sourceIndex */ 1
StackMap locals:
StackMap stack:
11: iload 6 /* sourceIndex */
iload 4 /* sourceLength */
if_icmplt 8
12: .line 340
iconst_m1
ireturn
end local 7 // int characterToFind
13: .line 344
StackMap locals:
StackMap stack:
iload 3 /* start */
istore 7 /* matchStart */
start local 7 // int matchStart
14: .line 345
iconst_0
istore 8 /* patternIndex */
start local 8 // int patternIndex
15: .line 348
aload 2 /* table */
ifnonnull 27
16: .line 349
aload 1 /* pattern */
invokestatic org.hsqldb.lib.KMPSearchAlgorithm.computeTable:([C)[I
astore 2 /* table */
17: .line 353
goto 27
18: .line 355
StackMap locals: int int
StackMap stack:
aload 0 /* source */
iload 6 /* sourceIndex */
caload
aload 1 /* pattern */
iload 8 /* patternIndex */
caload
if_icmpne 21
19: .line 356
iinc 8 /* patternIndex */ 1
20: .line 357
goto 26
21: .line 358
StackMap locals:
StackMap stack:
aload 2 /* table */
iload 8 /* patternIndex */
iaload
istore 9 /* tableValue */
start local 9 // int tableValue
22: .line 360
iload 7 /* matchStart */
iload 8 /* patternIndex */
iload 9 /* tableValue */
isub
iadd
istore 7 /* matchStart */
23: .line 362
iload 8 /* patternIndex */
ifle 25
24: .line 363
iload 9 /* tableValue */
istore 8 /* patternIndex */
25: .line 366
StackMap locals: int
StackMap stack:
iinc 8 /* patternIndex */ 1
end local 9 // int tableValue
26: .line 369
StackMap locals:
StackMap stack:
iload 7 /* matchStart */
iload 8 /* patternIndex */
iadd
istore 6 /* sourceIndex */
27: .line 353
StackMap locals:
StackMap stack:
iload 6 /* sourceIndex */
iload 4 /* sourceLength */
if_icmpge 30
28: .line 354
iload 8 /* patternIndex */
iload 5 /* patternLength */
29: .line 353
if_icmplt 18
30: .line 372
StackMap locals:
StackMap stack:
iload 8 /* patternIndex */
iload 5 /* patternLength */
if_icmpne 32
31: .line 373
iload 7 /* matchStart */
ireturn
32: .line 375
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 8 // int patternIndex
end local 7 // int matchStart
end local 6 // int sourceIndex
end local 5 // int patternLength
end local 4 // int sourceLength
end local 3 // int start
end local 2 // int[] table
end local 1 // char[] pattern
end local 0 // char[] source
LocalVariableTable:
Start End Slot Name Signature
0 33 0 source [C
0 33 1 pattern [C
0 33 2 table [I
0 33 3 start I
3 33 4 sourceLength I
4 33 5 patternLength I
5 33 6 sourceIndex I
7 13 7 characterToFind I
14 33 7 matchStart I
15 33 8 patternIndex I
22 26 9 tableValue I
MethodParameters:
Name Flags
source final
pattern final
table
start final
public static int search(java.lang.String, java.lang.String, int[], int);
descriptor: (Ljava/lang/String;Ljava/lang/String;[II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=10, args_size=4
start local 0 // java.lang.String source
start local 1 // java.lang.String pattern
start local 2 // int[] table
start local 3 // int start
0: .line 392
aload 0 /* source */
ifnull 1
aload 1 /* pattern */
ifnull 1
aload 1 /* pattern */
invokevirtual java.lang.String.length:()I
ifne 2
1: .line 393
StackMap locals:
StackMap stack:
iconst_m1
ireturn
2: .line 396
StackMap locals:
StackMap stack:
aload 1 /* pattern */
invokevirtual java.lang.String.length:()I
istore 4 /* patternLength */
start local 4 // int patternLength
3: .line 399
iload 4 /* patternLength */
iconst_1
if_icmpne 5
4: .line 400
aload 0 /* source */
aload 1 /* pattern */
iload 3 /* start */
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
ireturn
5: .line 404
StackMap locals: int
StackMap stack:
aload 0 /* source */
invokevirtual java.lang.String.length:()I
istore 5 /* sourceLength */
start local 5 // int sourceLength
6: .line 407
iload 3 /* start */
istore 6 /* matchStart */
start local 6 // int matchStart
7: .line 408
iload 3 /* start */
istore 7 /* sourceIndex */
start local 7 // int sourceIndex
8: .line 409
iconst_0
istore 8 /* patternIndex */
start local 8 // int patternIndex
9: .line 412
aload 2 /* table */
ifnonnull 21
10: .line 413
aload 1 /* pattern */
invokestatic org.hsqldb.lib.KMPSearchAlgorithm.computeTable:(Ljava/lang/String;)[I
astore 2 /* table */
11: .line 417
goto 21
12: .line 419
StackMap locals: java.lang.String java.lang.String int[] int int int int int int
StackMap stack:
aload 0 /* source */
iload 7 /* sourceIndex */
invokevirtual java.lang.String.charAt:(I)C
aload 1 /* pattern */
iload 8 /* patternIndex */
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 15
13: .line 420
iinc 8 /* patternIndex */ 1
14: .line 421
goto 20
15: .line 422
StackMap locals:
StackMap stack:
aload 2 /* table */
iload 8 /* patternIndex */
iaload
istore 9 /* tableValue */
start local 9 // int tableValue
16: .line 424
iload 6 /* matchStart */
iload 8 /* patternIndex */
iload 9 /* tableValue */
isub
iadd
istore 6 /* matchStart */
17: .line 426
iload 8 /* patternIndex */
ifle 19
18: .line 427
iload 9 /* tableValue */
istore 8 /* patternIndex */
19: .line 430
StackMap locals: int
StackMap stack:
iinc 8 /* patternIndex */ 1
end local 9 // int tableValue
20: .line 433
StackMap locals:
StackMap stack:
iload 6 /* matchStart */
iload 8 /* patternIndex */
iadd
istore 7 /* sourceIndex */
21: .line 417
StackMap locals:
StackMap stack:
iload 7 /* sourceIndex */
iload 5 /* sourceLength */
if_icmpge 24
22: .line 418
iload 8 /* patternIndex */
iload 4 /* patternLength */
23: .line 417
if_icmplt 12
24: .line 436
StackMap locals:
StackMap stack:
iload 8 /* patternIndex */
iload 4 /* patternLength */
if_icmpne 26
25: .line 437
iload 6 /* matchStart */
ireturn
26: .line 439
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 8 // int patternIndex
end local 7 // int sourceIndex
end local 6 // int matchStart
end local 5 // int sourceLength
end local 4 // int patternLength
end local 3 // int start
end local 2 // int[] table
end local 1 // java.lang.String pattern
end local 0 // java.lang.String source
LocalVariableTable:
Start End Slot Name Signature
0 27 0 source Ljava/lang/String;
0 27 1 pattern Ljava/lang/String;
0 27 2 table [I
0 27 3 start I
3 27 4 patternLength I
6 27 5 sourceLength I
7 27 6 matchStart I
8 27 7 sourceIndex I
9 27 8 patternIndex I
16 20 9 tableValue I
MethodParameters:
Name Flags
source final
pattern final
table
start final
public static int[] computeTable(byte[]);
descriptor: ([B)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // byte[] pattern
0: .line 451
aload 0 /* pattern */
ifnonnull 2
1: .line 452
new java.lang.IllegalArgumentException
dup
ldc "Pattern must not be null."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 453
StackMap locals:
StackMap stack:
aload 0 /* pattern */
arraylength
iconst_2
if_icmpge 4
3: .line 454
new java.lang.IllegalArgumentException
dup
ldc "Pattern length must be > 1."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 458
StackMap locals:
StackMap stack:
aload 0 /* pattern */
arraylength
newarray 10
astore 1 /* table */
start local 1 // int[] table
5: .line 459
iconst_2
istore 2 /* i */
start local 2 // int i
6: .line 460
iconst_0
istore 3 /* j */
start local 3 // int j
7: .line 463
aload 1 /* table */
iconst_0
iconst_m1
iastore
8: .line 464
aload 1 /* table */
iconst_1
iconst_0
iastore
9: .line 467
goto 21
10: .line 468
StackMap locals: int[] int int
StackMap stack:
aload 0 /* pattern */
iload 2 /* i */
iconst_1
isub
baload
aload 0 /* pattern */
iload 3 /* j */
baload
if_icmpne 15
11: .line 469
aload 1 /* table */
iload 2 /* i */
iload 3 /* j */
iconst_1
iadd
iastore
12: .line 471
iinc 3 /* j */ 1
13: .line 472
iinc 2 /* i */ 1
14: .line 473
goto 21
StackMap locals:
StackMap stack:
15: iload 3 /* j */
ifle 18
16: .line 474
aload 1 /* table */
iload 3 /* j */
iaload
istore 3 /* j */
17: .line 475
goto 21
18: .line 476
StackMap locals:
StackMap stack:
aload 1 /* table */
iload 2 /* i */
iconst_0
iastore
19: .line 478
iinc 2 /* i */ 1
20: .line 480
iconst_0
istore 3 /* j */
21: .line 467
StackMap locals:
StackMap stack:
iload 2 /* i */
aload 0 /* pattern */
arraylength
if_icmplt 10
22: .line 485
aload 1 /* table */
areturn
end local 3 // int j
end local 2 // int i
end local 1 // int[] table
end local 0 // byte[] pattern
LocalVariableTable:
Start End Slot Name Signature
0 23 0 pattern [B
5 23 1 table [I
6 23 2 i I
7 23 3 j I
MethodParameters:
Name Flags
pattern final
public static int[] computeTable(char[]);
descriptor: ([C)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // char[] pattern
0: .line 490
aload 0 /* pattern */
ifnonnull 2
1: .line 491
new java.lang.IllegalArgumentException
dup
ldc "Pattern must not be null."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 492
StackMap locals:
StackMap stack:
aload 0 /* pattern */
arraylength
iconst_2
if_icmpge 4
3: .line 493
new java.lang.IllegalArgumentException
dup
ldc "Pattern length must be > 1."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 496
StackMap locals:
StackMap stack:
aload 0 /* pattern */
arraylength
newarray 10
astore 1 /* table */
start local 1 // int[] table
5: .line 497
iconst_2
istore 2 /* i */
start local 2 // int i
6: .line 498
iconst_0
istore 3 /* j */
start local 3 // int j
7: .line 500
aload 1 /* table */
iconst_0
iconst_m1
iastore
8: .line 501
aload 1 /* table */
iconst_1
iconst_0
iastore
9: .line 503
goto 21
10: .line 504
StackMap locals: int[] int int
StackMap stack:
aload 0 /* pattern */
iload 2 /* i */
iconst_1
isub
caload
aload 0 /* pattern */
iload 3 /* j */
caload
if_icmpne 15
11: .line 505
aload 1 /* table */
iload 2 /* i */
iload 3 /* j */
iconst_1
iadd
iastore
12: .line 507
iinc 3 /* j */ 1
13: .line 508
iinc 2 /* i */ 1
14: .line 509
goto 21
StackMap locals:
StackMap stack:
15: iload 3 /* j */
ifle 18
16: .line 510
aload 1 /* table */
iload 3 /* j */
iaload
istore 3 /* j */
17: .line 511
goto 21
18: .line 512
StackMap locals:
StackMap stack:
aload 1 /* table */
iload 2 /* i */
iconst_0
iastore
19: .line 514
iinc 2 /* i */ 1
20: .line 516
iconst_0
istore 3 /* j */
21: .line 503
StackMap locals:
StackMap stack:
iload 2 /* i */
aload 0 /* pattern */
arraylength
if_icmplt 10
22: .line 520
aload 1 /* table */
areturn
end local 3 // int j
end local 2 // int i
end local 1 // int[] table
end local 0 // char[] pattern
LocalVariableTable:
Start End Slot Name Signature
0 23 0 pattern [C
5 23 1 table [I
6 23 2 i I
7 23 3 j I
MethodParameters:
Name Flags
pattern final
public static int[] computeTable(java.lang.String);
descriptor: (Ljava/lang/String;)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 // java.lang.String pattern
0: .line 525
aload 0 /* pattern */
ifnonnull 2
1: .line 526
new java.lang.IllegalArgumentException
dup
ldc "Pattern must not be null."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 527
StackMap locals:
StackMap stack:
aload 0 /* pattern */
invokevirtual java.lang.String.length:()I
iconst_2
if_icmpge 4
3: .line 528
new java.lang.IllegalArgumentException
dup
ldc "Pattern length must be > 1."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 531
StackMap locals:
StackMap stack:
aload 0 /* pattern */
invokevirtual java.lang.String.length:()I
istore 1 /* patternLength */
start local 1 // int patternLength
5: .line 534
iload 1 /* patternLength */
newarray 10
astore 2 /* table */
start local 2 // int[] table
6: .line 535
iconst_2
istore 3 /* i */
start local 3 // int i
7: .line 536
iconst_0
istore 4 /* j */
start local 4 // int j
8: .line 538
aload 2 /* table */
iconst_0
iconst_m1
iastore
9: .line 539
aload 2 /* table */
iconst_1
iconst_0
iastore
10: .line 541
goto 22
11: .line 542
StackMap locals: java.lang.String int int[] int int
StackMap stack:
aload 0 /* pattern */
iload 3 /* i */
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
aload 0 /* pattern */
iload 4 /* j */
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 16
12: .line 543
aload 2 /* table */
iload 3 /* i */
iload 4 /* j */
iconst_1
iadd
iastore
13: .line 545
iinc 4 /* j */ 1
14: .line 546
iinc 3 /* i */ 1
15: .line 547
goto 22
StackMap locals:
StackMap stack:
16: iload 4 /* j */
ifle 19
17: .line 548
aload 2 /* table */
iload 4 /* j */
iaload
istore 4 /* j */
18: .line 549
goto 22
19: .line 550
StackMap locals:
StackMap stack:
aload 2 /* table */
iload 3 /* i */
iconst_0
iastore
20: .line 552
iinc 3 /* i */ 1
21: .line 554
iconst_0
istore 4 /* j */
22: .line 541
StackMap locals:
StackMap stack:
iload 3 /* i */
iload 1 /* patternLength */
if_icmplt 11
23: .line 558
aload 2 /* table */
areturn
end local 4 // int j
end local 3 // int i
end local 2 // int[] table
end local 1 // int patternLength
end local 0 // java.lang.String pattern
LocalVariableTable:
Start End Slot Name Signature
0 24 0 pattern Ljava/lang/String;
5 24 1 patternLength I
6 24 2 table [I
7 24 3 i I
8 24 4 j I
MethodParameters:
Name Flags
pattern final
}
SourceFile: "KMPSearchAlgorithm.java"