class sun.font.CMap$CMapFormat2 extends sun.font.CMap
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.font.CMap$CMapFormat2
  super_class: sun.font.CMap
{
  char[] subHeaderKey;
    descriptor: [C
    flags: (0x0000) 

  char[] firstCodeArray;
    descriptor: [C
    flags: (0x0000) 

  char[] entryCountArray;
    descriptor: [C
    flags: (0x0000) 

  short[] idDeltaArray;
    descriptor: [S
    flags: (0x0000) 

  char[] idRangeOffSetArray;
    descriptor: [C
    flags: (0x0000) 

  char[] glyphIndexArray;
    descriptor: [C
    flags: (0x0000) 

  void <init>(java.nio.ByteBuffer, int, char[]);
    descriptor: (Ljava/nio/ByteBuffer;I[C)V
    flags: (0x0000) 
    Code:
      stack=3, locals=10, args_size=4
        start local 0 // sun.font.CMap$CMapFormat2 this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // int offset
        start local 3 // char[] xlat
         0: .line 734
            aload 0 /* this */
            invokespecial sun.font.CMap.<init>:()V
         1: .line 718
            aload 0 /* this */
            sipush 256
            newarray 5
            putfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
         2: .line 736
            aload 0 /* this */
            aload 3 /* xlat */
            putfield sun.font.CMap$CMapFormat2.xlat:[C
         3: .line 738
            aload 1 /* buffer */
            iload 2 /* offset */
            iconst_2
            iadd
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            istore 4 /* tableLen */
        start local 4 // int tableLen
         4: .line 739
            aload 1 /* buffer */
            iload 2 /* offset */
            bipush 6
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         5: .line 740
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.asCharBuffer:()Ljava/nio/CharBuffer;
            astore 5 /* cBuffer */
        start local 5 // java.nio.CharBuffer cBuffer
         6: .line 741
            iconst_0
            istore 6 /* maxSubHeader */
        start local 6 // char maxSubHeader
         7: .line 742
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: goto 13
         9: .line 743
      StackMap locals: sun.font.CMap$CMapFormat2 java.nio.ByteBuffer int char[] int java.nio.CharBuffer int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
            iload 7 /* i */
            aload 5 /* cBuffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        10: .line 744
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
            iload 7 /* i */
            caload
            iload 6 /* maxSubHeader */
            if_icmple 12
        11: .line 745
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
            iload 7 /* i */
            caload
            istore 6 /* maxSubHeader */
        12: .line 742
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            sipush 256
            if_icmplt 9
        end local 7 // int i
        14: .line 752
            iload 6 /* maxSubHeader */
            iconst_3
            ishr
            iconst_1
            iadd
            istore 7 /* numSubHeaders */
        start local 7 // int numSubHeaders
        15: .line 753
            aload 0 /* this */
            iload 7 /* numSubHeaders */
            newarray 5
            putfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
        16: .line 754
            aload 0 /* this */
            iload 7 /* numSubHeaders */
            newarray 5
            putfield sun.font.CMap$CMapFormat2.entryCountArray:[C
        17: .line 755
            aload 0 /* this */
            iload 7 /* numSubHeaders */
            newarray 9
            putfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
        18: .line 756
            aload 0 /* this */
            iload 7 /* numSubHeaders */
            newarray 5
            putfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
        19: .line 757
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        20: goto 26
        21: .line 758
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
            iload 8 /* i */
            aload 5 /* cBuffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        22: .line 759
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.entryCountArray:[C
            iload 8 /* i */
            aload 5 /* cBuffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        23: .line 760
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
            iload 8 /* i */
            aload 5 /* cBuffer */
            invokevirtual java.nio.CharBuffer.get:()C
            i2s
            sastore
        24: .line 761
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
            iload 8 /* i */
            aload 5 /* cBuffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        25: .line 757
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 8 /* i */
            iload 7 /* numSubHeaders */
            if_icmplt 21
        end local 8 // int i
        27: .line 768
            iload 4 /* tableLen */
            sipush 518
            isub
            iload 7 /* numSubHeaders */
            bipush 8
            imul
            isub
            iconst_2
            idiv
            istore 8 /* glyphIndexArrSize */
        start local 8 // int glyphIndexArrSize
        28: .line 769
            aload 0 /* this */
            iload 8 /* glyphIndexArrSize */
            newarray 5
            putfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
        29: .line 770
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        30: goto 33
        31: .line 771
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
            iload 9 /* i */
            aload 5 /* cBuffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        32: .line 770
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* i */
            iload 8 /* glyphIndexArrSize */
            if_icmplt 31
        end local 9 // int i
        34: .line 773
            return
        end local 8 // int glyphIndexArrSize
        end local 7 // int numSubHeaders
        end local 6 // char maxSubHeader
        end local 5 // java.nio.CharBuffer cBuffer
        end local 4 // int tableLen
        end local 3 // char[] xlat
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // sun.font.CMap$CMapFormat2 this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   35     0               this  Lsun/font/CMap$CMapFormat2;
            0   35     1             buffer  Ljava/nio/ByteBuffer;
            0   35     2             offset  I
            0   35     3               xlat  [C
            4   35     4           tableLen  I
            6   35     5            cBuffer  Ljava/nio/CharBuffer;
            7   35     6       maxSubHeader  C
            8   14     7                  i  I
           15   35     7      numSubHeaders  I
           20   27     8                  i  I
           28   35     8  glyphIndexArrSize  I
           30   34     9                  i  I
    MethodParameters:
        Name  Flags
      buffer  
      offset  
      xlat    

  char getGlyph(int);
    descriptor: (I)C
    flags: (0x0000) 
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // sun.font.CMap$CMapFormat2 this
        start local 1 // int charCode
         0: .line 776
            aload 0 /* this */
            iload 1 /* charCode */
            iconst_1
            invokevirtual sun.font.CMap$CMapFormat2.getControlCodeGlyph:(IZ)I
            istore 2 /* controlGlyph */
        start local 2 // int controlGlyph
         1: .line 777
            iload 2 /* controlGlyph */
            iflt 3
         2: .line 778
            iload 2 /* controlGlyph */
            i2c
            ireturn
         3: .line 781
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.xlat:[C
            ifnull 5
         4: .line 782
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.xlat:[C
            iload 1 /* charCode */
            caload
            istore 1 /* charCode */
         5: .line 785
      StackMap locals:
      StackMap stack:
            iload 1 /* charCode */
            bipush 8
            ishr
            i2c
            istore 3 /* highByte */
        start local 3 // char highByte
         6: .line 786
            iload 1 /* charCode */
            sipush 255
            iand
            i2c
            istore 4 /* lowByte */
        start local 4 // char lowByte
         7: .line 787
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
            iload 3 /* highByte */
            caload
            iconst_3
            ishr
            istore 5 /* key */
        start local 5 // int key
         8: .line 790
            iload 5 /* key */
            ifeq 11
         9: .line 791
            iload 4 /* lowByte */
            istore 6 /* mapMe */
        start local 6 // char mapMe
        10: .line 792
            goto 14
        end local 6 // char mapMe
        11: .line 793
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* highByte */
            istore 6 /* mapMe */
        start local 6 // char mapMe
        12: .line 794
            iload 6 /* mapMe */
            ifne 14
        13: .line 795
            iload 4 /* lowByte */
            istore 6 /* mapMe */
        14: .line 801
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
            iload 5 /* key */
            caload
            istore 7 /* firstCode */
        start local 7 // char firstCode
        15: .line 802
            iload 6 /* mapMe */
            iload 7 /* firstCode */
            if_icmpge 17
        16: .line 803
            iconst_0
            ireturn
        17: .line 805
      StackMap locals: int
      StackMap stack:
            iload 6 /* mapMe */
            iload 7 /* firstCode */
            isub
            i2c
            istore 6 /* mapMe */
        18: .line 808
            iload 6 /* mapMe */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.entryCountArray:[C
            iload 5 /* key */
            caload
            if_icmpge 26
        19: .line 822
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
            arraylength
            iload 5 /* key */
            isub
            bipush 8
            imul
            bipush 6
            isub
            istore 8 /* glyphArrayOffset */
        start local 8 // int glyphArrayOffset
        20: .line 824
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
            iload 5 /* key */
            caload
            iload 8 /* glyphArrayOffset */
            isub
            iconst_2
            idiv
        21: .line 823
            istore 9 /* glyphSubArrayStart */
        start local 9 // int glyphSubArrayStart
        22: .line 825
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
            iload 9 /* glyphSubArrayStart */
            iload 6 /* mapMe */
            iadd
            caload
            istore 10 /* glyphCode */
        start local 10 // char glyphCode
        23: .line 826
            iload 10 /* glyphCode */
            ifeq 26
        24: .line 827
            iload 10 /* glyphCode */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
            iload 5 /* key */
            saload
            iadd
            i2c
            istore 10 /* glyphCode */
        25: .line 828
            iload 10 /* glyphCode */
            ireturn
        end local 10 // char glyphCode
        end local 9 // int glyphSubArrayStart
        end local 8 // int glyphArrayOffset
        26: .line 831
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // char firstCode
        end local 6 // char mapMe
        end local 5 // int key
        end local 4 // char lowByte
        end local 3 // char highByte
        end local 2 // int controlGlyph
        end local 1 // int charCode
        end local 0 // sun.font.CMap$CMapFormat2 this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   27     0                this  Lsun/font/CMap$CMapFormat2;
            0   27     1            charCode  I
            1   27     2        controlGlyph  I
            6   27     3            highByte  C
            7   27     4             lowByte  C
            8   27     5                 key  I
           10   11     6               mapMe  C
           12   27     6               mapMe  C
           15   27     7           firstCode  C
           20   26     8    glyphArrayOffset  I
           22   26     9  glyphSubArrayStart  I
           23   26    10           glyphCode  C
    MethodParameters:
          Name  Flags
      charCode  
}
SourceFile: "CMap.java"
NestHost: sun.font.CMap
InnerClasses:
  CMapFormat2 = sun.font.CMap$CMapFormat2 of sun.font.CMap