public final class sun.text.CompactByteArray implements java.lang.Cloneable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.text.CompactByteArray
super_class: java.lang.Object
{
public static final int UNICODECOUNT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int BLOCKSHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int BLOCKCOUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private static final int INDEXSHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final int INDEXCOUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 512
private static final int BLOCKMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 127
private byte[] values;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private short[] indices;
descriptor: [S
flags: (0x0002) ACC_PRIVATE
private boolean isCompact;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int[] hashes;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
public void <init>(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 // sun.text.CompactByteArray this
start local 1 // byte defaultValue
0: .line 74
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 77
aload 0 /* this */
ldc 65536
newarray 8
putfield sun.text.CompactByteArray.values:[B
2: .line 78
aload 0 /* this */
sipush 512
newarray 9
putfield sun.text.CompactByteArray.indices:[S
3: .line 79
aload 0 /* this */
sipush 512
newarray 10
putfield sun.text.CompactByteArray.hashes:[I
4: .line 80
iconst_0
istore 2 /* i */
start local 2 // int i
5: goto 8
6: .line 81
StackMap locals: sun.text.CompactByteArray int int
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 2 /* i */
iload 1 /* defaultValue */
bastore
7: .line 80
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 2 /* i */
ldc 65536
if_icmplt 6
9: .line 83
iconst_0
istore 2 /* i */
goto 13
10: .line 84
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 2 /* i */
iload 2 /* i */
bipush 7
ishl
i2s
sastore
11: .line 85
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 2 /* i */
iconst_0
iastore
12: .line 83
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 2 /* i */
sipush 512
if_icmplt 10
14: .line 87
aload 0 /* this */
iconst_0
putfield sun.text.CompactByteArray.isCompact:Z
15: .line 88
return
end local 2 // int i
end local 1 // byte defaultValue
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/text/CompactByteArray;
0 16 1 defaultValue B
5 16 2 i I
MethodParameters:
Name Flags
defaultValue
public void <init>(short[], byte[]);
descriptor: ([S[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 // sun.text.CompactByteArray this
start local 1 // short[] indexArray
start local 2 // byte[] newValues
0: .line 96
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 100
aload 1 /* indexArray */
arraylength
sipush 512
if_icmpeq 3
2: .line 101
new java.lang.IllegalArgumentException
dup
ldc "Index out of bounds!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: .line 102
StackMap locals: sun.text.CompactByteArray short[] byte[]
StackMap stack:
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 9
5: .line 103
StackMap locals: int
StackMap stack:
aload 1 /* indexArray */
iload 3 /* i */
saload
istore 4 /* index */
start local 4 // short index
6: .line 104
iload 4 /* index */
iflt 7
iload 4 /* index */
aload 2 /* newValues */
arraylength
sipush 128
iadd
if_icmplt 8
7: .line 105
StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Index out of bounds!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 // short index
8: .line 102
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 3 /* i */
sipush 512
if_icmplt 5
10: .line 107
aload 0 /* this */
aload 1 /* indexArray */
putfield sun.text.CompactByteArray.indices:[S
11: .line 108
aload 0 /* this */
aload 2 /* newValues */
putfield sun.text.CompactByteArray.values:[B
12: .line 109
aload 0 /* this */
iconst_1
putfield sun.text.CompactByteArray.isCompact:Z
13: .line 110
return
end local 3 // int i
end local 2 // byte[] newValues
end local 1 // short[] indexArray
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/text/CompactByteArray;
0 14 1 indexArray [S
0 14 2 newValues [B
4 14 3 i I
6 8 4 index S
MethodParameters:
Name Flags
indexArray
newValues
public byte elementAt(char);
descriptor: (C)B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 // sun.text.CompactByteArray this
start local 1 // char index
0: .line 119
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 1 /* index */
bipush 7
ishr
saload
ldc 65535
iand
1: .line 120
iload 1 /* index */
bipush 127
iand
iadd
2: .line 119
baload
ireturn
end local 1 // char index
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/text/CompactByteArray;
0 3 1 index C
MethodParameters:
Name Flags
index
public void setElementAt(char, byte);
descriptor: (CB)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // sun.text.CompactByteArray this
start local 1 // char index
start local 2 // byte value
0: .line 130
aload 0 /* this */
getfield sun.text.CompactByteArray.isCompact:Z
ifeq 2
1: .line 131
aload 0 /* this */
invokevirtual sun.text.CompactByteArray.expand:()V
2: .line 132
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 1 /* index */
iload 2 /* value */
bastore
3: .line 133
aload 0 /* this */
iload 1 /* index */
bipush 7
ishr
iload 2 /* value */
invokevirtual sun.text.CompactByteArray.touchBlock:(II)V
4: .line 134
return
end local 2 // byte value
end local 1 // char index
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/text/CompactByteArray;
0 5 1 index C
0 5 2 value B
MethodParameters:
Name Flags
index
value
public void setElementAt(char, char, byte);
descriptor: (CCB)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 // sun.text.CompactByteArray this
start local 1 // char start
start local 2 // char end
start local 3 // byte value
0: .line 145
aload 0 /* this */
getfield sun.text.CompactByteArray.isCompact:Z
ifeq 2
1: .line 146
aload 0 /* this */
invokevirtual sun.text.CompactByteArray.expand:()V
2: .line 148
StackMap locals:
StackMap stack:
iload 1 /* start */
istore 4 /* i */
start local 4 // int i
3: goto 7
4: .line 149
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 4 /* i */
iload 3 /* value */
bastore
5: .line 150
aload 0 /* this */
iload 4 /* i */
bipush 7
ishr
iload 3 /* value */
invokevirtual sun.text.CompactByteArray.touchBlock:(II)V
6: .line 148
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 2 /* end */
if_icmple 4
8: .line 152
return
end local 4 // int i
end local 3 // byte value
end local 2 // char end
end local 1 // char start
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/text/CompactByteArray;
0 9 1 start C
0 9 2 end C
0 9 3 value B
3 9 4 i I
MethodParameters:
Name Flags
start
end
value
public void compact();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 159
aload 0 /* this */
getfield sun.text.CompactByteArray.isCompact:Z
ifne 40
1: .line 160
iconst_0
istore 1 /* limitCompacted */
start local 1 // int limitCompacted
2: .line 161
iconst_0
istore 2 /* iBlockStart */
start local 2 // int iBlockStart
3: .line 162
iconst_m1
istore 3 /* iUntouched */
start local 3 // short iUntouched
4: .line 164
iconst_0
istore 4 /* i */
start local 4 // int i
5: goto 33
6: .line 165
StackMap locals: sun.text.CompactByteArray int int int int
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 4 /* i */
iconst_m1
sastore
7: .line 166
aload 0 /* this */
iload 4 /* i */
invokevirtual sun.text.CompactByteArray.blockTouched:(I)Z
istore 5 /* touched */
start local 5 // boolean touched
8: .line 167
iload 5 /* touched */
ifne 11
iload 3 /* iUntouched */
iconst_m1
if_icmpeq 11
9: .line 171
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 4 /* i */
iload 3 /* iUntouched */
sastore
10: .line 172
goto 32
11: .line 173
StackMap locals: int
StackMap stack:
iconst_0
istore 6 /* jBlockStart */
start local 6 // int jBlockStart
12: .line 174
iconst_0
istore 7 /* j */
start local 7 // int j
13: .line 175
iconst_0
istore 7 /* j */
goto 22
14: .line 177
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 4 /* i */
iaload
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 7 /* j */
iaload
if_icmpne 21
15: .line 178
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 2 /* iBlockStart */
16: .line 179
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 6 /* jBlockStart */
sipush 128
17: .line 178
invokestatic sun.text.CompactByteArray.arrayRegionMatches:([BI[BII)Z
18: .line 179
ifeq 21
19: .line 180
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 4 /* i */
iload 6 /* jBlockStart */
i2s
sastore
20: .line 181
goto 23
21: .line 176
StackMap locals:
StackMap stack:
iinc 7 /* j */ 1
iinc 6 /* jBlockStart */ 128
22: .line 175
StackMap locals:
StackMap stack:
iload 7 /* j */
iload 1 /* limitCompacted */
if_icmplt 14
23: .line 184
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 4 /* i */
saload
iconst_m1
if_icmpne 32
24: .line 186
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 2 /* iBlockStart */
25: .line 187
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 6 /* jBlockStart */
sipush 128
26: .line 186
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: .line 188
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 4 /* i */
iload 6 /* jBlockStart */
i2s
sastore
28: .line 189
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 7 /* j */
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 4 /* i */
iaload
iastore
29: .line 190
iinc 1 /* limitCompacted */ 1
30: .line 192
iload 5 /* touched */
ifne 32
31: .line 195
iload 6 /* jBlockStart */
i2s
istore 3 /* iUntouched */
end local 7 // int j
end local 6 // int jBlockStart
end local 5 // boolean touched
32: .line 164
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
iinc 2 /* iBlockStart */ 128
StackMap locals:
StackMap stack:
33: iload 4 /* i */
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
arraylength
if_icmplt 6
end local 4 // int i
34: .line 201
iload 1 /* limitCompacted */
sipush 128
imul
istore 4 /* newSize */
start local 4 // int newSize
35: .line 202
iload 4 /* newSize */
newarray 8
astore 5 /* result */
start local 5 // byte[] result
36: .line 203
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iconst_0
aload 5 /* result */
iconst_0
iload 4 /* newSize */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
37: .line 204
aload 0 /* this */
aload 5 /* result */
putfield sun.text.CompactByteArray.values:[B
38: .line 205
aload 0 /* this */
iconst_1
putfield sun.text.CompactByteArray.isCompact:Z
39: .line 206
aload 0 /* this */
aconst_null
putfield sun.text.CompactByteArray.hashes:[I
end local 5 // byte[] result
end local 4 // int newSize
end local 3 // short iUntouched
end local 2 // int iBlockStart
end local 1 // int limitCompacted
40: .line 208
StackMap locals: sun.text.CompactByteArray
StackMap stack:
return
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/text/CompactByteArray;
2 40 1 limitCompacted I
3 40 2 iBlockStart I
4 40 3 iUntouched S
5 34 4 i I
8 32 5 touched Z
12 32 6 jBlockStart I
13 32 7 j I
35 40 4 newSize I
36 40 5 result [B
static final boolean arrayRegionMatches(byte[], int, byte[], int, int);
descriptor: ([BI[BII)Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=4, locals=8, args_size=5
start local 0 // byte[] source
start local 1 // int sourceStart
start local 2 // byte[] target
start local 3 // int targetStart
start local 4 // int len
0: .line 219
iload 1 /* sourceStart */
iload 4 /* len */
iadd
istore 5 /* sourceEnd */
start local 5 // int sourceEnd
1: .line 220
iload 3 /* targetStart */
iload 1 /* sourceStart */
isub
istore 6 /* delta */
start local 6 // int delta
2: .line 221
iload 1 /* sourceStart */
istore 7 /* i */
start local 7 // int i
3: goto 7
4: .line 222
StackMap locals: int int int
StackMap stack:
aload 0 /* source */
iload 7 /* i */
baload
aload 2 /* target */
iload 7 /* i */
iload 6 /* delta */
iadd
baload
if_icmpeq 6
5: .line 223
iconst_0
ireturn
6: .line 221
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 7 /* i */
iload 5 /* sourceEnd */
if_icmplt 4
end local 7 // int i
8: .line 225
iconst_1
ireturn
end local 6 // int delta
end local 5 // int sourceEnd
end local 4 // int len
end local 3 // int targetStart
end local 2 // byte[] target
end local 1 // int sourceStart
end local 0 // byte[] source
LocalVariableTable:
Start End Slot Name Signature
0 9 0 source [B
0 9 1 sourceStart I
0 9 2 target [B
0 9 3 targetStart I
0 9 4 len I
1 9 5 sourceEnd I
2 9 6 delta I
3 8 7 i I
MethodParameters:
Name Flags
source
sourceStart
target
targetStart
len
private final void touchBlock(int, int);
descriptor: (II)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=5, locals=3, args_size=3
start local 0 // sun.text.CompactByteArray this
start local 1 // int i
start local 2 // int value
0: .line 233
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 1 /* i */
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 1 /* i */
iaload
iload 2 /* value */
iconst_1
ishl
iadd
iconst_1
ior
iastore
1: .line 234
return
end local 2 // int value
end local 1 // int i
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/text/CompactByteArray;
0 2 1 i I
0 2 2 value I
MethodParameters:
Name Flags
i
value
private final boolean blockTouched(int);
descriptor: (I)Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.text.CompactByteArray this
start local 1 // int i
0: .line 241
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
iload 1 /* i */
iaload
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 // int i
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/text/CompactByteArray;
0 2 1 i I
MethodParameters:
Name Flags
i
public short[] getIndexArray();
descriptor: ()[S
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 249
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
areturn
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/text/CompactByteArray;
public byte[] getStringArray();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 257
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
areturn
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/text/CompactByteArray;
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 266
aload 0 /* this */
invokespecial java.lang.Object.clone:()Ljava/lang/Object;
checkcast sun.text.CompactByteArray
astore 1 /* other */
start local 1 // sun.text.CompactByteArray other
1: .line 267
aload 1 /* other */
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield sun.text.CompactByteArray.values:[B
2: .line 268
aload 1 /* other */
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
invokevirtual short[].clone:()Ljava/lang/Object;
checkcast short[]
putfield sun.text.CompactByteArray.indices:[S
3: .line 269
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
ifnull 4
aload 1 /* other */
aload 0 /* this */
getfield sun.text.CompactByteArray.hashes:[I
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
putfield sun.text.CompactByteArray.hashes:[I
4: .line 270
StackMap locals: sun.text.CompactByteArray
StackMap stack:
aload 1 /* other */
5: areturn
end local 1 // sun.text.CompactByteArray other
6: .line 271
StackMap locals: sun.text.CompactByteArray
StackMap stack: java.lang.CloneNotSupportedException
astore 1 /* e */
start local 1 // java.lang.CloneNotSupportedException e
7: .line 272
new java.lang.InternalError
dup
aload 1 /* e */
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 // java.lang.CloneNotSupportedException e
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/text/CompactByteArray;
1 6 1 other Lsun/text/CompactByteArray;
7 8 1 e Ljava/lang/CloneNotSupportedException;
Exception table:
from to target type
0 5 6 Class java.lang.CloneNotSupportedException
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 // sun.text.CompactByteArray this
start local 1 // java.lang.Object obj
0: .line 283
aload 1 /* obj */
ifnonnull 1
iconst_0
ireturn
1: .line 284
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* obj */
if_acmpne 3
2: .line 285
iconst_1
ireturn
3: .line 286
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1 /* obj */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpeq 5
4: .line 287
iconst_0
ireturn
5: .line 288
StackMap locals:
StackMap stack:
aload 1 /* obj */
checkcast sun.text.CompactByteArray
astore 2 /* other */
start local 2 // sun.text.CompactByteArray other
6: .line 289
iconst_0
istore 3 /* i */
start local 3 // int i
7: goto 11
8: .line 291
StackMap locals: sun.text.CompactByteArray int
StackMap stack:
aload 0 /* this */
iload 3 /* i */
i2c
invokevirtual sun.text.CompactByteArray.elementAt:(C)B
aload 2 /* other */
iload 3 /* i */
i2c
invokevirtual sun.text.CompactByteArray.elementAt:(C)B
if_icmpeq 10
9: .line 292
iconst_0
ireturn
10: .line 289
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 3 /* i */
ldc 65536
if_icmplt 8
end local 3 // int i
12: .line 294
iconst_1
ireturn
end local 2 // sun.text.CompactByteArray other
end local 1 // java.lang.Object obj
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/text/CompactByteArray;
0 13 1 obj Ljava/lang/Object;
6 13 2 other Lsun/text/CompactByteArray;
7 12 3 i I
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 302
iconst_0
istore 1 /* result */
start local 1 // int result
1: .line 303
iconst_3
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
arraylength
bipush 16
idiv
invokestatic java.lang.Math.min:(II)I
istore 2 /* increment */
start local 2 // int increment
2: .line 304
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 305
StackMap locals: int int int
StackMap stack:
iload 1 /* result */
bipush 37
imul
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
iload 3 /* i */
baload
iadd
istore 1 /* result */
5: .line 304
iload 3 /* i */
iload 2 /* increment */
iadd
istore 3 /* i */
StackMap locals:
StackMap stack:
6: iload 3 /* i */
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
arraylength
if_icmplt 4
end local 3 // int i
7: .line 307
iload 1 /* result */
ireturn
end local 2 // int increment
end local 1 // int result
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/text/CompactByteArray;
1 8 1 result I
2 8 2 increment I
3 7 3 i I
private void expand();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 319
aload 0 /* this */
getfield sun.text.CompactByteArray.isCompact:Z
ifeq 17
1: .line 321
aload 0 /* this */
sipush 512
newarray 10
putfield sun.text.CompactByteArray.hashes:[I
2: .line 322
ldc 65536
newarray 8
astore 2 /* tempArray */
start local 2 // byte[] tempArray
3: .line 323
iconst_0
istore 1 /* i */
start local 1 // int i
4: goto 9
5: .line 324
StackMap locals: int byte[]
StackMap stack:
aload 0 /* this */
iload 1 /* i */
i2c
invokevirtual sun.text.CompactByteArray.elementAt:(C)B
istore 3 /* value */
start local 3 // byte value
6: .line 325
aload 2 /* tempArray */
iload 1 /* i */
iload 3 /* value */
bastore
7: .line 326
aload 0 /* this */
iload 1 /* i */
bipush 7
ishr
iload 3 /* value */
invokevirtual sun.text.CompactByteArray.touchBlock:(II)V
end local 3 // byte value
8: .line 323
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 1 /* i */
ldc 65536
if_icmplt 5
10: .line 328
iconst_0
istore 1 /* i */
goto 13
11: .line 329
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.text.CompactByteArray.indices:[S
iload 1 /* i */
iload 1 /* i */
bipush 7
ishl
i2s
sastore
12: .line 328
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 1 /* i */
sipush 512
if_icmplt 11
14: .line 331
aload 0 /* this */
aconst_null
putfield sun.text.CompactByteArray.values:[B
15: .line 332
aload 0 /* this */
aload 2 /* tempArray */
putfield sun.text.CompactByteArray.values:[B
16: .line 333
aload 0 /* this */
iconst_0
putfield sun.text.CompactByteArray.isCompact:Z
end local 2 // byte[] tempArray
end local 1 // int i
17: .line 335
StackMap locals:
StackMap stack:
return
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/text/CompactByteArray;
4 17 1 i I
3 17 2 tempArray [B
6 8 3 value B
private byte[] getArray();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.text.CompactByteArray this
0: .line 339
aload 0 /* this */
getfield sun.text.CompactByteArray.values:[B
areturn
end local 0 // sun.text.CompactByteArray this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/text/CompactByteArray;
}
SourceFile: "CompactByteArray.java"