class sun.font.CCharToGlyphMapper$Cache
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.font.CCharToGlyphMapper$Cache
  super_class: java.lang.Object
{
  private static final int FIRST_LAYER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  private static final int SECOND_LAYER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private final int[] firstLayerCache;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray secondLayerCache;
    descriptor: Lsun/font/CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.Integer, java.lang.Integer> generalCache;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Ljava/lang/Integer;>;

  final sun.font.CCharToGlyphMapper this$0;
    descriptor: Lsun/font/CCharToGlyphMapper;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(sun.font.CCharToGlyphMapper);
    descriptor: (Lsun/font/CCharToGlyphMapper;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper$Cache this
         0: .line 173
            aload 0 /* this */
            aload 1
            putfield sun.font.CCharToGlyphMapper$Cache.this$0:Lsun/font/CCharToGlyphMapper;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 169
            aload 0 /* this */
            sipush 256
            newarray 10
            putfield sun.font.CCharToGlyphMapper$Cache.firstLayerCache:[I
         2: .line 175
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.firstLayerCache:[I
            iconst_1
            iconst_1
            iastore
         3: .line 176
            return
        end local 0 // sun.font.CCharToGlyphMapper$Cache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/font/CCharToGlyphMapper$Cache;
    MethodParameters:
        Name  Flags
      this$0  final

  public synchronized int get(int);
    descriptor: (I)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.font.CCharToGlyphMapper$Cache this
        start local 1 // int index
         0: .line 179
            iload 1 /* index */
            sipush 256
            if_icmpge 2
         1: .line 181
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.firstLayerCache:[I
            iload 1 /* index */
            iaload
            ireturn
         2: .line 184
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            sipush 16384
            if_icmpge 5
         3: .line 186
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.secondLayerCache:Lsun/font/CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray;
            ifnonnull 4
            iconst_0
            ireturn
         4: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.secondLayerCache:Lsun/font/CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray;
            iload 1 /* index */
            invokevirtual sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray.get:(I)I
            ireturn
         5: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.generalCache:Ljava/util/HashMap;
            ifnonnull 6
            iconst_0
            ireturn
         6: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.generalCache:Ljava/util/HashMap;
            iload 1 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* value */
        start local 2 // java.lang.Integer value
         7: .line 192
            aload 2 /* value */
            ifnonnull 8
            iconst_0
            ireturn
         8: .line 193
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 2 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.Integer value
        end local 1 // int index
        end local 0 // sun.font.CCharToGlyphMapper$Cache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lsun/font/CCharToGlyphMapper$Cache;
            0    9     1  index  I
            7    9     2  value  Ljava/lang/Integer;
    MethodParameters:
       Name  Flags
      index  final

  public synchronized void put(int, int);
    descriptor: (II)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // sun.font.CCharToGlyphMapper$Cache this
        start local 1 // int index
        start local 2 // int value
         0: .line 197
            iload 1 /* index */
            sipush 256
            if_icmpge 3
         1: .line 199
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.firstLayerCache:[I
            iload 1 /* index */
            iload 2 /* value */
            iastore
         2: .line 200
            return
         3: .line 203
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            sipush 16384
            if_icmpge 8
         4: .line 205
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.secondLayerCache:Lsun/font/CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray;
            ifnonnull 6
         5: .line 206
            aload 0 /* this */
            new sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray
            dup
            aload 0 /* this */
            sipush 16384
            bipush 7
            invokespecial sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray.<init>:(Lsun/font/CCharToGlyphMapper$Cache;II)V
            putfield sun.font.CCharToGlyphMapper$Cache.secondLayerCache:Lsun/font/CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray;
         6: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.secondLayerCache:Lsun/font/CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray;
            iload 1 /* index */
            iload 2 /* value */
            invokevirtual sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray.put:(II)V
         7: .line 209
            return
         8: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.generalCache:Ljava/util/HashMap;
            ifnonnull 10
         9: .line 213
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.font.CCharToGlyphMapper$Cache.generalCache:Ljava/util/HashMap;
        10: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.generalCache:Ljava/util/HashMap;
            iload 1 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 2 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 217
            return
        end local 2 // int value
        end local 1 // int index
        end local 0 // sun.font.CCharToGlyphMapper$Cache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lsun/font/CCharToGlyphMapper$Cache;
            0   12     1  index  I
            0   12     2  value  I
    MethodParameters:
       Name  Flags
      index  final
      value  final

  public synchronized void get(int, char[], int[]);
    descriptor: (I[C[I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // sun.font.CCharToGlyphMapper$Cache this
        start local 1 // int count
        start local 2 // char[] indicies
        start local 3 // int[] values
         0: .line 255
            iconst_0
            istore 4 /* missed */
        start local 4 // int missed
         1: .line 256
            aconst_null
            astore 5 /* unmappedChars */
        start local 5 // char[] unmappedChars
         2: .line 257
            aconst_null
            astore 6 /* unmappedCharIndices */
        start local 6 // int[] unmappedCharIndices
         3: .line 259
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         4: goto 35
         5: .line 260
      StackMap locals: sun.font.CCharToGlyphMapper$Cache int char[] int[] int char[] int[] int
      StackMap stack:
            aload 2 /* indicies */
            iload 7 /* i */
            caload
            istore 8 /* code */
        start local 8 // int code
         6: .line 261
            iload 8 /* code */
            ldc 55296
            if_icmplt 17
         7: .line 262
            iload 8 /* code */
            ldc 56319
            if_icmpgt 17
            iload 7 /* i */
            iload 1 /* count */
            iconst_1
            isub
            if_icmpge 17
         8: .line 264
            aload 2 /* indicies */
            iload 7 /* i */
            iconst_1
            iadd
            caload
            istore 9 /* low */
        start local 9 // char low
         9: .line 265
            iload 9 /* low */
            ldc 56320
            if_icmplt 17
            iload 9 /* low */
            ldc 57343
            if_icmpgt 17
        10: .line 266
            iload 8 /* code */
            ldc 55296
            isub
            sipush 1024
            imul
        11: .line 267
            iload 9 /* low */
        12: .line 266
            iadd
        13: .line 267
            ldc 56320
        14: .line 266
            isub
        15: .line 267
            ldc 65536
        16: .line 266
            iadd
            istore 8 /* code */
        end local 9 // char low
        17: .line 271
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* code */
            invokevirtual sun.font.CCharToGlyphMapper$Cache.get:(I)I
            istore 9 /* value */
        start local 9 // int value
        18: .line 272
            iload 9 /* value */
            ifeq 24
            iload 9 /* value */
            iconst_m1
            if_icmpeq 24
        19: .line 273
            aload 3 /* values */
            iload 7 /* i */
            iload 9 /* value */
            iastore
        20: .line 274
            iload 8 /* code */
            ldc 65536
            if_icmplt 34
        21: .line 275
            aload 3 /* values */
            iload 7 /* i */
            iconst_1
            iadd
            ldc 65535
            iastore
        22: .line 276
            iinc 7 /* i */ 1
        23: .line 278
            goto 34
        24: .line 279
      StackMap locals: int
      StackMap stack:
            aload 3 /* values */
            iload 7 /* i */
            iconst_0
            iastore
        25: .line 280
            aload 0 /* this */
            iload 8 /* code */
            iconst_m1
            invokevirtual sun.font.CCharToGlyphMapper$Cache.put:(II)V
        26: .line 281
            aload 5 /* unmappedChars */
            ifnonnull 29
        27: .line 284
            aload 2 /* indicies */
            arraylength
            newarray 5
            astore 5 /* unmappedChars */
        28: .line 285
            aload 2 /* indicies */
            arraylength
            newarray 10
            astore 6 /* unmappedCharIndices */
        29: .line 287
      StackMap locals:
      StackMap stack:
            aload 5 /* unmappedChars */
            iload 4 /* missed */
            aload 2 /* indicies */
            iload 7 /* i */
            caload
            castore
        30: .line 288
            aload 6 /* unmappedCharIndices */
            iload 4 /* missed */
            iload 7 /* i */
            iastore
        31: .line 289
            iload 8 /* code */
            ldc 65536
            if_icmplt 33
        32: .line 290
            aload 5 /* unmappedChars */
            iinc 4 /* missed */ 1
            iload 4 /* missed */
            aload 2 /* indicies */
            iinc 7 /* i */ 1
            iload 7 /* i */
            caload
            castore
        33: .line 292
      StackMap locals:
      StackMap stack:
            iinc 4 /* missed */ 1
        end local 9 // int value
        end local 8 // int code
        34: .line 259
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 7 /* i */
            iload 1 /* count */
            if_icmplt 5
        end local 7 // int i
        36: .line 296
            iload 4 /* missed */
            ifne 38
        37: .line 297
            return
        38: .line 300
      StackMap locals:
      StackMap stack:
            iload 4 /* missed */
            newarray 10
            astore 7 /* glyphCodes */
        start local 7 // int[] glyphCodes
        39: .line 303
            aload 0 /* this */
            getfield sun.font.CCharToGlyphMapper$Cache.this$0:Lsun/font/CCharToGlyphMapper;
            getfield sun.font.CCharToGlyphMapper.fFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getNativeFontPtr:()J
        40: .line 304
            iload 4 /* missed */
            aload 5 /* unmappedChars */
            aload 7 /* glyphCodes */
        41: .line 303
            invokestatic sun.font.CCharToGlyphMapper.nativeCharsToGlyphs:(JI[C[I)V
        42: .line 306
            iconst_0
            istore 8 /* m */
        start local 8 // int m
        43: goto 63
        44: .line 307
      StackMap locals: int[] int
      StackMap stack:
            aload 6 /* unmappedCharIndices */
            iload 8 /* m */
            iaload
            istore 9 /* i */
        start local 9 // int i
        45: .line 308
            aload 5 /* unmappedChars */
            iload 8 /* m */
            caload
            istore 10 /* code */
        start local 10 // int code
        46: .line 309
            iload 10 /* code */
            ldc 55296
            if_icmplt 57
        47: .line 310
            iload 10 /* code */
            ldc 56319
            if_icmpgt 57
            iload 8 /* m */
            iload 4 /* missed */
            iconst_1
            isub
            if_icmpge 57
        48: .line 312
            aload 2 /* indicies */
            iload 8 /* m */
            iconst_1
            iadd
            caload
            istore 11 /* low */
        start local 11 // char low
        49: .line 313
            iload 11 /* low */
            ldc 56320
            if_icmplt 57
            iload 11 /* low */
            ldc 57343
            if_icmpgt 57
        50: .line 314
            iload 10 /* code */
            ldc 55296
            isub
            sipush 1024
            imul
        51: .line 315
            iload 11 /* low */
        52: .line 314
            iadd
        53: .line 315
            ldc 56320
        54: .line 314
            isub
        55: .line 315
            ldc 65536
        56: .line 314
            iadd
            istore 10 /* code */
        end local 11 // char low
        57: .line 318
      StackMap locals: int int
      StackMap stack:
            aload 3 /* values */
            iload 9 /* i */
            aload 7 /* glyphCodes */
            iload 8 /* m */
            iaload
            iastore
        58: .line 319
            aload 0 /* this */
            iload 10 /* code */
            aload 3 /* values */
            iload 9 /* i */
            iaload
            invokevirtual sun.font.CCharToGlyphMapper$Cache.put:(II)V
        59: .line 320
            iload 10 /* code */
            ldc 65536
            if_icmplt 62
        60: .line 321
            iinc 8 /* m */ 1
        61: .line 322
            aload 3 /* values */
            iload 9 /* i */
            iconst_1
            iadd
            ldc 65535
            iastore
        end local 10 // int code
        end local 9 // int i
        62: .line 306
      StackMap locals:
      StackMap stack:
            iinc 8 /* m */ 1
      StackMap locals:
      StackMap stack:
        63: iload 8 /* m */
            iload 4 /* missed */
            if_icmplt 44
        end local 8 // int m
        64: .line 325
            return
        end local 7 // int[] glyphCodes
        end local 6 // int[] unmappedCharIndices
        end local 5 // char[] unmappedChars
        end local 4 // int missed
        end local 3 // int[] values
        end local 2 // char[] indicies
        end local 1 // int count
        end local 0 // sun.font.CCharToGlyphMapper$Cache this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   65     0                 this  Lsun/font/CCharToGlyphMapper$Cache;
            0   65     1                count  I
            0   65     2             indicies  [C
            0   65     3               values  [I
            1   65     4               missed  I
            2   65     5        unmappedChars  [C
            3   65     6  unmappedCharIndices  [I
            4   36     7                    i  I
            6   34     8                 code  I
            9   17     9                  low  C
           18   34     9                value  I
           39   65     7           glyphCodes  [I
           43   64     8                    m  I
           45   62     9                    i  I
           46   62    10                 code  I
           49   57    11                  low  C
    MethodParameters:
          Name  Flags
      count     
      indicies  
      values    
}
SourceFile: "CCharToGlyphMapper.java"
NestHost: sun.font.CCharToGlyphMapper
InnerClasses:
  private Cache = sun.font.CCharToGlyphMapper$Cache of sun.font.CCharToGlyphMapper
  private SparseBitShiftingTwoLayerArray = sun.font.CCharToGlyphMapper$Cache$SparseBitShiftingTwoLayerArray of sun.font.CCharToGlyphMapper$Cache