public class sun.font.CCharToGlyphMapper extends sun.font.CharToGlyphMapper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.font.CCharToGlyphMapper
  super_class: sun.font.CharToGlyphMapper
{
  private sun.font.CCharToGlyphMapper$Cache cache;
    descriptor: Lsun/font/CCharToGlyphMapper$Cache;
    flags: (0x0002) ACC_PRIVATE

  sun.font.CFont fFont;
    descriptor: Lsun/font/CFont;
    flags: (0x0000) 

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

  private static native int countGlyphs(long);
    descriptor: (J)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      nativeFontPtr  final

  public void <init>(sun.font.CFont);
    descriptor: (Lsun/font/CFont;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // sun.font.CFont font
         0: .line 37
            aload 0 /* this */
            invokespecial sun.font.CharToGlyphMapper.<init>:()V
         1: .line 33
            aload 0 /* this */
            new sun.font.CCharToGlyphMapper$Cache
            dup
            aload 0 /* this */
            invokespecial sun.font.CCharToGlyphMapper$Cache.<init>:(Lsun/font/CCharToGlyphMapper;)V
            putfield sun.font.CCharToGlyphMapper.cache:Lsun/font/CCharToGlyphMapper$Cache;
         2: .line 35
            aload 0 /* this */
            iconst_m1
            putfield sun.font.CCharToGlyphMapper.numGlyphs:I
         3: .line 38
            aload 0 /* this */
            aload 1 /* font */
            putfield sun.font.CCharToGlyphMapper.fFont:Lsun/font/CFont;
         4: .line 39
            aload 0 /* this */
            iconst_0
            putfield sun.font.CCharToGlyphMapper.missingGlyph:I
         5: .line 40
            return
        end local 1 // sun.font.CFont font
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/font/CCharToGlyphMapper;
            0    6     1  font  Lsun/font/CFont;
    MethodParameters:
      Name  Flags
      font  

  public int getNumGlyphs();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.font.CCharToGlyphMapper this
         0: .line 43
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.numGlyphs:I
            iconst_m1
            if_icmpne 2
         1: .line 44
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.fFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getNativeFontPtr:()J
            invokestatic sun.font.CCharToGlyphMapper.countGlyphs:(J)I
            putfield sun.font.CCharToGlyphMapper.numGlyphs:I
         2: .line 46
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.numGlyphs:I
            ireturn
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/font/CCharToGlyphMapper;

  public boolean canDisplay(char);
    descriptor: (C)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // char ch
         0: .line 50
            aload 0 /* this */
            iload 1 /* ch */
            invokevirtual sun.font.CCharToGlyphMapper.charToGlyph:(C)I
            istore 2 /* glyph */
        start local 2 // int glyph
         1: .line 51
            iload 2 /* glyph */
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.missingGlyph:I
            if_icmpeq 2
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // int glyph
        end local 1 // char ch
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/font/CCharToGlyphMapper;
            0    3     1     ch  C
            1    3     2  glyph  I
    MethodParameters:
      Name  Flags
      ch    

  public boolean canDisplay(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // int cp
         0: .line 55
            aload 0 /* this */
            iload 1 /* cp */
            invokevirtual sun.font.CCharToGlyphMapper.charToGlyph:(I)I
            istore 2 /* glyph */
        start local 2 // int glyph
         1: .line 56
            iload 2 /* glyph */
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.missingGlyph:I
            if_icmpeq 2
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // int glyph
        end local 1 // int cp
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/font/CCharToGlyphMapper;
            0    3     1     cp  I
            1    3     2  glyph  I
    MethodParameters:
      Name  Flags
      cp    

  public synchronized boolean charsToGlyphsNS(int, char[], int[]);
    descriptor: (I[C[I)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // int count
        start local 2 // char[] unicodes
        start local 3 // int[] glyphs
         0: .line 62
            aload 0 /* this */
            iload 1 /* count */
            aload 2 /* unicodes */
            aload 3 /* glyphs */
            invokevirtual sun.font.CCharToGlyphMapper.charsToGlyphs:(I[C[I)V
         1: .line 66
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 16
         3: .line 67
      StackMap locals: int
      StackMap stack:
            aload 2 /* unicodes */
            iload 4 /* i */
            caload
            istore 5 /* code */
        start local 5 // int code
         4: .line 69
            iload 5 /* code */
            ldc 55296
            if_icmplt 9
            iload 5 /* code */
            ldc 56319
            if_icmpgt 9
            iload 4 /* i */
            iload 1 /* count */
            iconst_1
            isub
            if_icmpge 9
         5: .line 70
            aload 2 /* unicodes */
            iload 4 /* i */
            iconst_1
            iadd
            caload
            istore 6 /* low */
        start local 6 // char low
         6: .line 72
            iload 6 /* low */
            ldc 56320
            if_icmplt 9
            iload 6 /* low */
            ldc 57343
            if_icmpgt 9
         7: .line 73
            iload 5 /* code */
            ldc 55296
            isub
            sipush 1024
            imul
            iload 6 /* low */
            iadd
            ldc 56320
            isub
            ldc 65536
            iadd
            istore 5 /* code */
         8: .line 74
            aload 3 /* glyphs */
            iload 4 /* i */
            iconst_1
            iadd
            ldc 65535
            iastore
        end local 6 // char low
         9: .line 78
      StackMap locals: int
      StackMap stack:
            iload 5 /* code */
            sipush 768
            if_icmpge 11
        10: .line 79
            goto 15
        11: .line 80
      StackMap locals:
      StackMap stack:
            iload 5 /* code */
            invokestatic sun.font.FontUtilities.isComplexCharCode:(I)Z
            ifeq 13
        12: .line 81
            iconst_1
            ireturn
        13: .line 82
      StackMap locals:
      StackMap stack:
            iload 5 /* code */
            ldc 65536
            if_icmplt 15
        14: .line 83
            iinc 4 /* i */ 1
        end local 5 // int code
        15: .line 66
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 4 // int i
        17: .line 88
            iconst_0
            ireturn
        end local 3 // int[] glyphs
        end local 2 // char[] unicodes
        end local 1 // int count
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lsun/font/CCharToGlyphMapper;
            0   18     1     count  I
            0   18     2  unicodes  [C
            0   18     3    glyphs  [I
            2   17     4         i  I
            4   15     5      code  I
            6    9     6       low  C
    MethodParameters:
          Name  Flags
      count     
      unicodes  
      glyphs    

  public synchronized int charToGlyph(char);
    descriptor: (C)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // char unicode
         0: .line 92
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.cache:Lsun/font/CCharToGlyphMapper$Cache;
            iload 1 /* unicode */
            invokevirtual sun.font.CCharToGlyphMapper$Cache.get:(I)I
            istore 2 /* glyph */
        start local 2 // int glyph
         1: .line 93
            iload 2 /* glyph */
            ifeq 2
            iload 2 /* glyph */
            ireturn
         2: .line 95
      StackMap locals: int
      StackMap stack:
            iconst_1
            newarray 5
            dup
            iconst_0
            iload 1 /* unicode */
            castore
            astore 3 /* unicodeArray */
        start local 3 // char[] unicodeArray
         3: .line 96
            iconst_1
            newarray 10
            astore 4 /* glyphArray */
        start local 4 // int[] glyphArray
         4: .line 98
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.fFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getNativeFontPtr:()J
            iconst_1
            aload 3 /* unicodeArray */
            aload 4 /* glyphArray */
            invokestatic sun.font.CCharToGlyphMapper.nativeCharsToGlyphs:(JI[C[I)V
         5: .line 99
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.cache:Lsun/font/CCharToGlyphMapper$Cache;
            iload 1 /* unicode */
            aload 4 /* glyphArray */
            iconst_0
            iaload
            invokevirtual sun.font.CCharToGlyphMapper$Cache.put:(II)V
         6: .line 101
            aload 4 /* glyphArray */
            iconst_0
            iaload
            ireturn
        end local 4 // int[] glyphArray
        end local 3 // char[] unicodeArray
        end local 2 // int glyph
        end local 1 // char unicode
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lsun/font/CCharToGlyphMapper;
            0    7     1       unicode  C
            1    7     2         glyph  I
            3    7     3  unicodeArray  [C
            4    7     4    glyphArray  [I
    MethodParameters:
         Name  Flags
      unicode  

  public synchronized int charToGlyph(int);
    descriptor: (I)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // int unicode
         0: .line 105
            iload 1 /* unicode */
            ldc 65536
            if_icmplt 8
         1: .line 106
            iconst_2
            newarray 10
            astore 2 /* glyphs */
        start local 2 // int[] glyphs
         2: .line 107
            iconst_2
            newarray 5
            astore 3 /* surrogates */
        start local 3 // char[] surrogates
         3: .line 108
            iload 1 /* unicode */
            ldc 65536
            isub
            istore 4 /* base */
        start local 4 // int base
         4: .line 109
            aload 3 /* surrogates */
            iconst_0
            iload 4 /* base */
            bipush 10
            iushr
            ldc 55296
            iadd
            i2c
            castore
         5: .line 110
            aload 3 /* surrogates */
            iconst_1
            iload 4 /* base */
            sipush 1024
            irem
            ldc 56320
            iadd
            i2c
            castore
         6: .line 111
            aload 0 /* this */
            iconst_2
            aload 3 /* surrogates */
            aload 2 /* glyphs */
            invokevirtual sun.font.CCharToGlyphMapper.charsToGlyphs:(I[C[I)V
         7: .line 112
            aload 2 /* glyphs */
            iconst_0
            iaload
            ireturn
        end local 4 // int base
        end local 3 // char[] surrogates
        end local 2 // int[] glyphs
         8: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* unicode */
            i2c
            invokevirtual sun.font.CCharToGlyphMapper.charToGlyph:(C)I
            ireturn
        end local 1 // int unicode
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lsun/font/CCharToGlyphMapper;
            0    9     1     unicode  I
            2    8     2      glyphs  [I
            3    8     3  surrogates  [C
            4    8     4        base  I
    MethodParameters:
         Name  Flags
      unicode  

  public synchronized void charsToGlyphs(int, char[], int[]);
    descriptor: (I[C[I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // int count
        start local 2 // char[] unicodes
        start local 3 // int[] glyphs
         0: .line 119
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper.cache:Lsun/font/CCharToGlyphMapper$Cache;
            iload 1 /* count */
            aload 2 /* unicodes */
            aload 3 /* glyphs */
            invokevirtual sun.font.CCharToGlyphMapper$Cache.get:(I[C[I)V
         1: .line 120
            return
        end local 3 // int[] glyphs
        end local 2 // char[] unicodes
        end local 1 // int count
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/font/CCharToGlyphMapper;
            0    2     1     count  I
            0    2     2  unicodes  [C
            0    2     3    glyphs  [I
    MethodParameters:
          Name  Flags
      count     
      unicodes  
      glyphs    

  public synchronized void charsToGlyphs(int, int[], int[]);
    descriptor: (I[I[I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // sun.font.CCharToGlyphMapper this
        start local 1 // int count
        start local 2 // int[] unicodes
        start local 3 // int[] glyphs
         0: .line 123
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 124
      StackMap locals: int
      StackMap stack:
            aload 3 /* glyphs */
            iload 4 /* i */
            aload 0 /* this */
            aload 2 /* unicodes */
            iload 4 /* i */
            iaload
            invokevirtual sun.font.CCharToGlyphMapper.charToGlyph:(I)I
            iastore
         3: .line 123
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 1 /* count */
            if_icmplt 2
        end local 4 // int i
         5: .line 126
            return
        end local 3 // int[] glyphs
        end local 2 // int[] unicodes
        end local 1 // int count
        end local 0 // sun.font.CCharToGlyphMapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/font/CCharToGlyphMapper;
            0    6     1     count  I
            0    6     2  unicodes  [I
            0    6     3    glyphs  [I
            1    5     4         i  I
    MethodParameters:
          Name  Flags
      count     
      unicodes  
      glyphs    

  private static native void nativeCharsToGlyphs(long, int, char[], int[]);
    descriptor: (JI[C[I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      nativeFontPtr  final
      count          
      unicodes       
      glyphs         
}
SourceFile: "CCharToGlyphMapper.java"
NestMembers:
  sun.font.CCharToGlyphMapper$Cache  sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray
InnerClasses:
  private Cache = sun.font.CCharToGlyphMapper$Cache of sun.font.CCharToGlyphMapper