class sun.font.CMap$CMapFormat4 extends sun.font.CMap
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.font.CMap$CMapFormat4
  super_class: sun.font.CMap
{
  int segCount;
    descriptor: I
    flags: (0x0000) 

  int entrySelector;
    descriptor: I
    flags: (0x0000) 

  int rangeShift;
    descriptor: I
    flags: (0x0000) 

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

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

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

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

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

  void <init>(java.nio.ByteBuffer, int, char[]);
    descriptor: (Ljava/nio/ByteBuffer;I[C)V
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // sun.font.CMap$CMapFormat4 this
        start local 1 // java.nio.ByteBuffer bbuffer
        start local 2 // int offset
        start local 3 // char[] xlat
         0: .line 463
            aload 0 /* this */
            invokespecial sun.font.CMap.<init>:()V
         1: .line 465
            aload 0 /* this */
            aload 3 /* xlat */
            putfield sun.font.CMap$CMapFormat4.xlat:[C
         2: .line 467
            aload 1 /* bbuffer */
            iload 2 /* offset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         3: .line 468
            aload 1 /* bbuffer */
            invokevirtual java.nio.ByteBuffer.asCharBuffer:()Ljava/nio/CharBuffer;
            astore 4 /* buffer */
        start local 4 // java.nio.CharBuffer buffer
         4: .line 469
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            pop
         5: .line 470
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            istore 5 /* subtableLength */
        start local 5 // int subtableLength
         6: .line 479
            iload 2 /* offset */
            iload 5 /* subtableLength */
            iadd
            aload 1 /* bbuffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmple 8
         7: .line 480
            aload 1 /* bbuffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iload 2 /* offset */
            isub
            istore 5 /* subtableLength */
         8: .line 482
      StackMap locals: sun.font.CMap$CMapFormat4 java.nio.ByteBuffer int char[] java.nio.CharBuffer int
      StackMap stack:
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            pop
         9: .line 483
            aload 0 /* this */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            iconst_2
            idiv
            putfield sun.font.CMap$CMapFormat4.segCount:I
        10: .line 484
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            pop
        11: .line 485
            aload 0 /* this */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            putfield sun.font.CMap$CMapFormat4.entrySelector:I
        12: .line 486
            aload 0 /* this */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            iconst_2
            idiv
            putfield sun.font.CMap$CMapFormat4.rangeShift:I
        13: .line 487
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            newarray 5
            putfield sun.font.CMap$CMapFormat4.startCount:[C
        14: .line 488
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            newarray 5
            putfield sun.font.CMap$CMapFormat4.endCount:[C
        15: .line 489
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            newarray 9
            putfield sun.font.CMap$CMapFormat4.idDelta:[S
        16: .line 490
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            newarray 5
            putfield sun.font.CMap$CMapFormat4.idRangeOffset:[C
        17: .line 492
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        18: goto 21
        19: .line 493
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.endCount:[C
            iload 6 /* i */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        20: .line 492
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            if_icmplt 19
        end local 6 // int i
        22: .line 495
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            pop
        23: .line 496
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        24: goto 27
        25: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.startCount:[C
            iload 6 /* i */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        26: .line 496
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            if_icmplt 25
        end local 6 // int i
        28: .line 500
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        29: goto 32
        30: .line 501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.idDelta:[S
            iload 6 /* i */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            i2s
            sastore
        31: .line 500
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 6 /* i */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            if_icmplt 30
        end local 6 // int i
        33: .line 504
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        34: goto 38
        35: .line 505
      StackMap locals:
      StackMap stack:
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            istore 7 /* ctmp */
        start local 7 // char ctmp
        36: .line 506
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.idRangeOffset:[C
            iload 6 /* i */
            iload 7 /* ctmp */
            iconst_1
            ishr
            ldc 65535
            iand
            i2c
            castore
        end local 7 // char ctmp
        37: .line 504
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 6 /* i */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            if_icmplt 35
        end local 6 // int i
        39: .line 511
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            bipush 8
            imul
            bipush 16
            iadd
            iconst_2
            idiv
            istore 6 /* pos */
        start local 6 // int pos
        40: .line 512
            aload 4 /* buffer */
            iload 6 /* pos */
            invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
            pop
        41: .line 513
            iload 5 /* subtableLength */
            iconst_2
            idiv
            iload 6 /* pos */
            isub
            istore 7 /* numGlyphIds */
        start local 7 // int numGlyphIds
        42: .line 514
            aload 0 /* this */
            iload 7 /* numGlyphIds */
            newarray 5
            putfield sun.font.CMap$CMapFormat4.glyphIds:[C
        43: .line 515
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        44: goto 47
        45: .line 516
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.glyphIds:[C
            iload 8 /* i */
            aload 4 /* buffer */
            invokevirtual java.nio.CharBuffer.get:()C
            castore
        46: .line 515
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 8 /* i */
            iload 7 /* numGlyphIds */
            if_icmplt 45
        end local 8 // int i
        48: .line 534
            return
        end local 7 // int numGlyphIds
        end local 6 // int pos
        end local 5 // int subtableLength
        end local 4 // java.nio.CharBuffer buffer
        end local 3 // char[] xlat
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer bbuffer
        end local 0 // sun.font.CMap$CMapFormat4 this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   49     0            this  Lsun/font/CMap$CMapFormat4;
            0   49     1         bbuffer  Ljava/nio/ByteBuffer;
            0   49     2          offset  I
            0   49     3            xlat  [C
            4   49     4          buffer  Ljava/nio/CharBuffer;
            6   49     5  subtableLength  I
           18   22     6               i  I
           24   28     6               i  I
           29   33     6               i  I
           34   39     6               i  I
           36   37     7            ctmp  C
           40   49     6             pos  I
           42   49     7     numGlyphIds  I
           44   48     8               i  I
    MethodParameters:
         Name  Flags
      bbuffer  
      offset   
      xlat     

  char getGlyph(int);
    descriptor: (I)C
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.font.CMap$CMapFormat4 this
        start local 1 // int charCode
         0: .line 538
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         1: .line 539
            iconst_0
            istore 3 /* glyphCode */
        start local 3 // char glyphCode
         2: .line 541
            aload 0 /* this */
            iload 1 /* charCode */
            iconst_1
            invokevirtual sun.font.CMap$CMapFormat4.getControlCodeGlyph:(IZ)I
            istore 4 /* controlGlyph */
        start local 4 // int controlGlyph
         3: .line 542
            iload 4 /* controlGlyph */
            iflt 5
         4: .line 543
            iload 4 /* controlGlyph */
            i2c
            ireturn
         5: .line 553
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.xlat:[C
            ifnull 7
         6: .line 554
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.xlat:[C
            iload 1 /* charCode */
            caload
            istore 1 /* charCode */
         7: .line 575
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* left */
        start local 5 // int left
         8: aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.startCount:[C
            arraylength
            istore 6 /* right */
        start local 6 // int right
         9: .line 576
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.startCount:[C
            arraylength
            iconst_1
            ishr
            istore 2 /* index */
        10: .line 577
            goto 16
        11: .line 578
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.endCount:[C
            iload 2 /* index */
            caload
            iload 1 /* charCode */
            if_icmpge 14
        12: .line 579
            iload 2 /* index */
            iconst_1
            iadd
            istore 5 /* left */
        13: .line 580
            goto 15
        14: .line 581
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            istore 6 /* right */
        15: .line 583
      StackMap locals:
      StackMap stack:
            iload 5 /* left */
            iload 6 /* right */
            iadd
            iconst_1
            ishr
            istore 2 /* index */
        16: .line 577
      StackMap locals:
      StackMap stack:
            iload 5 /* left */
            iload 6 /* right */
            if_icmplt 11
        17: .line 586
            iload 1 /* charCode */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.startCount:[C
            iload 2 /* index */
            caload
            if_icmplt 28
            iload 1 /* charCode */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.endCount:[C
            iload 2 /* index */
            caload
            if_icmpgt 28
        18: .line 587
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.idRangeOffset:[C
            iload 2 /* index */
            caload
            istore 7 /* rangeOffset */
        start local 7 // int rangeOffset
        19: .line 589
            iload 7 /* rangeOffset */
            ifne 22
        20: .line 590
            iload 1 /* charCode */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.idDelta:[S
            iload 2 /* index */
            saload
            iadd
            i2c
            istore 3 /* glyphCode */
        21: .line 591
            goto 28
        22: .line 601
      StackMap locals: int
      StackMap stack:
            iload 7 /* rangeOffset */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.segCount:I
            isub
            iload 2 /* index */
            iadd
        23: .line 602
            iload 1 /* charCode */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.startCount:[C
            iload 2 /* index */
            caload
            isub
        24: .line 601
            iadd
            istore 8 /* glyphIDIndex */
        start local 8 // int glyphIDIndex
        25: .line 603
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.glyphIds:[C
            iload 8 /* glyphIDIndex */
            caload
            istore 3 /* glyphCode */
        26: .line 604
            iload 3 /* glyphCode */
            ifeq 28
        27: .line 605
            iload 3 /* glyphCode */
            aload 0 /* this */
            getfield sun.font.CMap$CMapFormat4.idDelta:[S
            iload 2 /* index */
            saload
            iadd
            i2c
            istore 3 /* glyphCode */
        end local 8 // int glyphIDIndex
        end local 7 // int rangeOffset
        28: .line 612
      StackMap locals:
      StackMap stack:
            iload 3 /* glyphCode */
            ireturn
        end local 6 // int right
        end local 5 // int left
        end local 4 // int controlGlyph
        end local 3 // char glyphCode
        end local 2 // int index
        end local 1 // int charCode
        end local 0 // sun.font.CMap$CMapFormat4 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lsun/font/CMap$CMapFormat4;
            0   29     1      charCode  I
            1   29     2         index  I
            2   29     3     glyphCode  C
            3   29     4  controlGlyph  I
            8   29     5          left  I
            9   29     6         right  I
           19   28     7   rangeOffset  I
           25   28     8  glyphIDIndex  I
    MethodParameters:
          Name  Flags
      charCode  
}
SourceFile: "CMap.java"
NestHost: sun.font.CMap
InnerClasses:
  CMapFormat4 = sun.font.CMap$CMapFormat4 of sun.font.CMap