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=2, 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
            pop
         7: .line 272
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        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;
      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"