public abstract class sun.awt.PlatformFont implements java.awt.peer.FontPeer
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.awt.PlatformFont
  super_class: java.lang.Object
{
  protected sun.awt.FontDescriptor[] componentFonts;
    descriptor: [Lsun/awt/FontDescriptor;
    flags: (0x0004) ACC_PROTECTED

  protected char defaultChar;
    descriptor: C
    flags: (0x0004) ACC_PROTECTED

  protected sun.awt.FontConfiguration fontConfig;
    descriptor: Lsun/awt/FontConfiguration;
    flags: (0x0004) ACC_PROTECTED

  protected sun.awt.FontDescriptor defaultFont;
    descriptor: Lsun/awt/FontDescriptor;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String familyName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  private java.lang.Object[] fontCache;
    descriptor: [Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  protected static int FONTCACHESIZE;
    descriptor: I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static int FONTCACHEMASK;
    descriptor: I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static java.lang.String osVersion;
    descriptor: Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 39
            invokestatic sun.awt.NativeLibLoader.loadLibraries:()V
         1: .line 40
            invokestatic sun.awt.PlatformFont.initIDs:()V
         2: .line 55
            sipush 256
            putstatic sun.awt.PlatformFont.FONTCACHESIZE:I
         3: .line 56
            getstatic sun.awt.PlatformFont.FONTCACHESIZE:I
            iconst_1
            isub
            putstatic sun.awt.PlatformFont.FONTCACHEMASK:I
         4: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.awt.PlatformFont this
        start local 1 // java.lang.String name
        start local 2 // int style
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
            astore 3 /* sfm */
        start local 3 // sun.font.SunFontManager sfm
         2: .line 61
            aload 3 /* sfm */
            instanceof sun.java2d.FontSupport
            ifeq 4
         3: .line 62
            aload 0 /* this */
            aload 3 /* sfm */
            invokeinterface sun.java2d.FontSupport.getFontConfiguration:()Lsun/awt/FontConfiguration;
            putfield sun.awt.PlatformFont.fontConfig:Lsun/awt/FontConfiguration;
         4: .line 64
      StackMap locals: sun.awt.PlatformFont java.lang.String int sun.font.SunFontManager
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.fontConfig:Lsun/awt/FontConfiguration;
            ifnonnull 6
         5: .line 65
            return
         6: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield sun.awt.PlatformFont.familyName:Ljava/lang/String;
         7: .line 70
            aload 0 /* this */
            getfield sun.awt.PlatformFont.familyName:Ljava/lang/String;
            invokestatic sun.awt.FontConfiguration.isLogicalFontFamilyName:(Ljava/lang/String;)Z
            ifne 9
         8: .line 71
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.fontConfig:Lsun/awt/FontConfiguration;
            aload 0 /* this */
            getfield sun.awt.PlatformFont.familyName:Ljava/lang/String;
            ldc "sansserif"
            invokevirtual sun.awt.FontConfiguration.getFallbackFamilyName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield sun.awt.PlatformFont.familyName:Ljava/lang/String;
         9: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.fontConfig:Lsun/awt/FontConfiguration;
            aload 0 /* this */
            getfield sun.awt.PlatformFont.familyName:Ljava/lang/String;
            iload 2 /* style */
            invokevirtual sun.awt.FontConfiguration.getFontDescriptors:(Ljava/lang/String;I)[Lsun/awt/FontDescriptor;
            putfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
        10: .line 78
            aload 0 /* this */
            invokevirtual sun.awt.PlatformFont.getMissingGlyphCharacter:()C
            istore 4 /* missingGlyphCharacter */
        start local 4 // char missingGlyphCharacter
        11: .line 80
            aload 0 /* this */
            bipush 63
            putfield sun.awt.PlatformFont.defaultChar:C
        12: .line 81
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            arraylength
            ifle 14
        13: .line 82
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iconst_0
            aaload
            putfield sun.awt.PlatformFont.defaultFont:Lsun/awt/FontDescriptor;
        14: .line 84
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        15: goto 23
        16: .line 85
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 5 /* i */
            aaload
            iload 4 /* missingGlyphCharacter */
            invokevirtual sun.awt.FontDescriptor.isExcluded:(C)Z
            ifeq 18
        17: .line 86
            goto 22
        18: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 5 /* i */
            aaload
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            iload 4 /* missingGlyphCharacter */
            invokevirtual java.nio.charset.CharsetEncoder.canEncode:(C)Z
            ifeq 22
        19: .line 90
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 5 /* i */
            aaload
            putfield sun.awt.PlatformFont.defaultFont:Lsun/awt/FontDescriptor;
        20: .line 91
            aload 0 /* this */
            iload 4 /* missingGlyphCharacter */
            putfield sun.awt.PlatformFont.defaultChar:C
        21: .line 92
            goto 24
        22: .line 84
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 5 /* i */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            arraylength
            if_icmplt 16
        end local 5 // int i
        24: .line 95
      StackMap locals:
      StackMap stack:
            return
        end local 4 // char missingGlyphCharacter
        end local 3 // sun.font.SunFontManager sfm
        end local 2 // int style
        end local 1 // java.lang.String name
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   25     0                   this  Lsun/awt/PlatformFont;
            0   25     1                   name  Ljava/lang/String;
            0   25     2                  style  I
            2   25     3                    sfm  Lsun/font/SunFontManager;
           11   25     4  missingGlyphCharacter  C
           15   24     5                      i  I
    MethodParameters:
       Name  Flags
      name   
      style  

  protected abstract char getMissingGlyphCharacter();
    descriptor: ()C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public sun.awt.CharsetString[] makeMultiCharsetString(java.lang.String);
    descriptor: (Ljava/lang/String;)[Lsun/awt/CharsetString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.awt.PlatformFont this
        start local 1 // java.lang.String str
         0: .line 107
            aload 0 /* this */
            aload 1 /* str */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            invokevirtual sun.awt.PlatformFont.makeMultiCharsetString:([CIIZ)[Lsun/awt/CharsetString;
            areturn
        end local 1 // java.lang.String str
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/PlatformFont;
            0    1     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  public sun.awt.CharsetString[] makeMultiCharsetString(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)[Lsun/awt/CharsetString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.awt.PlatformFont this
        start local 1 // java.lang.String str
        start local 2 // boolean allowdefault
         0: .line 114
            aload 0 /* this */
            aload 1 /* str */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            iload 2 /* allowdefault */
            invokevirtual sun.awt.PlatformFont.makeMultiCharsetString:([CIIZ)[Lsun/awt/CharsetString;
            areturn
        end local 2 // boolean allowdefault
        end local 1 // java.lang.String str
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lsun/awt/PlatformFont;
            0    1     1           str  Ljava/lang/String;
            0    1     2  allowdefault  Z
    MethodParameters:
              Name  Flags
      str           
      allowdefault  

  public sun.awt.CharsetString[] makeMultiCharsetString(char[], int, int);
    descriptor: ([CII)[Lsun/awt/CharsetString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.awt.PlatformFont this
        start local 1 // char[] str
        start local 2 // int offset
        start local 3 // int len
         0: .line 124
            aload 0 /* this */
            aload 1 /* str */
            iload 2 /* offset */
            iload 3 /* len */
            iconst_1
            invokevirtual sun.awt.PlatformFont.makeMultiCharsetString:([CIIZ)[Lsun/awt/CharsetString;
            areturn
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] str
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/awt/PlatformFont;
            0    1     1     str  [C
            0    1     2  offset  I
            0    1     3     len  I
    MethodParameters:
        Name  Flags
      str     
      offset  
      len     

  public sun.awt.CharsetString[] makeMultiCharsetString(char[], int, int, boolean);
    descriptor: ([CIIZ)[Lsun/awt/CharsetString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=5
        start local 0 // sun.awt.PlatformFont this
        start local 1 // char[] str
        start local 2 // int offset
        start local 3 // int len
        start local 4 // boolean allowDefault
         0: .line 143
            iload 3 /* len */
            iconst_1
            if_icmpge 2
         1: .line 144
            iconst_0
            anewarray sun.awt.CharsetString
            areturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* mcs */
        start local 5 // java.util.Vector mcs
         3: .line 147
            iload 3 /* len */
            newarray 5
            astore 6 /* tmpStr */
        start local 6 // char[] tmpStr
         4: .line 148
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultChar:C
            istore 7 /* tmpChar */
        start local 7 // char tmpChar
         5: .line 149
            iconst_0
            istore 8 /* encoded */
        start local 8 // boolean encoded
         6: .line 151
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultFont:Lsun/awt/FontDescriptor;
            astore 9 /* currentFont */
        start local 9 // sun.awt.FontDescriptor currentFont
         7: .line 154
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         8: goto 17
         9: .line 155
      StackMap locals: sun.awt.PlatformFont char[] int int int java.util.Vector char[] int int sun.awt.FontDescriptor int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 10 /* i */
            aaload
            aload 1 /* str */
            iload 2 /* offset */
            caload
            invokevirtual sun.awt.FontDescriptor.isExcluded:(C)Z
            ifeq 11
        10: .line 156
            goto 16
        11: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 10 /* i */
            aaload
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            aload 1 /* str */
            iload 2 /* offset */
            caload
            invokevirtual java.nio.charset.CharsetEncoder.canEncode:(C)Z
            ifeq 16
        12: .line 164
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 10 /* i */
            aaload
            astore 9 /* currentFont */
        13: .line 165
            aload 1 /* str */
            iload 2 /* offset */
            caload
            istore 7 /* tmpChar */
        14: .line 166
            iconst_1
            istore 8 /* encoded */
        15: .line 167
            goto 18
        16: .line 154
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 10 /* i */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            arraylength
            if_icmplt 9
        end local 10 // int i
        18: .line 170
      StackMap locals:
      StackMap stack:
            iload 4 /* allowDefault */
            ifne 20
            iload 8 /* encoded */
            ifne 20
        19: .line 171
            aconst_null
            areturn
        20: .line 173
      StackMap locals:
      StackMap stack:
            aload 6 /* tmpStr */
            iconst_0
            iload 7 /* tmpChar */
            castore
        21: .line 176
            iconst_0
            istore 10 /* lastIndex */
        start local 10 // int lastIndex
        22: .line 177
            iconst_1
            istore 11 /* i */
        start local 11 // int i
        23: goto 52
        24: .line 178
      StackMap locals: int int
      StackMap stack:
            aload 1 /* str */
            iload 2 /* offset */
            iload 11 /* i */
            iadd
            caload
            istore 12 /* ch */
        start local 12 // char ch
        25: .line 179
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultFont:Lsun/awt/FontDescriptor;
            astore 13 /* fd */
        start local 13 // sun.awt.FontDescriptor fd
        26: .line 180
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultChar:C
            istore 7 /* tmpChar */
        27: .line 181
            iconst_0
            istore 8 /* encoded */
        28: .line 182
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        29: goto 38
        30: .line 183
      StackMap locals: int sun.awt.FontDescriptor int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 14 /* j */
            aaload
            iload 12 /* ch */
            invokevirtual sun.awt.FontDescriptor.isExcluded:(C)Z
            ifeq 32
        31: .line 184
            goto 37
        32: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 14 /* j */
            aaload
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            iload 12 /* ch */
            invokevirtual java.nio.charset.CharsetEncoder.canEncode:(C)Z
            ifeq 37
        33: .line 188
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 14 /* j */
            aaload
            astore 13 /* fd */
        34: .line 189
            iload 12 /* ch */
            istore 7 /* tmpChar */
        35: .line 190
            iconst_1
            istore 8 /* encoded */
        36: .line 191
            goto 39
        37: .line 182
      StackMap locals:
      StackMap stack:
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        38: iload 14 /* j */
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            arraylength
            if_icmplt 30
        end local 14 // int j
        39: .line 194
      StackMap locals:
      StackMap stack:
            iload 4 /* allowDefault */
            ifne 41
            iload 8 /* encoded */
            ifne 41
        40: .line 195
            aconst_null
            areturn
        41: .line 197
      StackMap locals:
      StackMap stack:
            aload 6 /* tmpStr */
            iload 11 /* i */
            iload 7 /* tmpChar */
            castore
        42: .line 199
            aload 9 /* currentFont */
            aload 13 /* fd */
            if_acmpeq 51
        43: .line 200
            aload 5 /* mcs */
            ifnonnull 45
        44: .line 201
            new java.util.Vector
            dup
            iconst_3
            invokespecial java.util.Vector.<init>:(I)V
            astore 5 /* mcs */
        45: .line 203
      StackMap locals:
      StackMap stack:
            aload 5 /* mcs */
            new sun.awt.CharsetString
            dup
            aload 6 /* tmpStr */
            iload 10 /* lastIndex */
        46: .line 204
            iload 11 /* i */
            iload 10 /* lastIndex */
            isub
            aload 9 /* currentFont */
            invokespecial sun.awt.CharsetString.<init>:([CIILsun/awt/FontDescriptor;)V
        47: .line 203
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        48: .line 205
            aload 13 /* fd */
            astore 9 /* currentFont */
        49: .line 206
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultFont:Lsun/awt/FontDescriptor;
            astore 13 /* fd */
        50: .line 207
            iload 11 /* i */
            istore 10 /* lastIndex */
        end local 13 // sun.awt.FontDescriptor fd
        end local 12 // char ch
        51: .line 177
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 11 /* i */
            iload 3 /* len */
            if_icmplt 24
        end local 11 // int i
        53: .line 211
            new sun.awt.CharsetString
            dup
            aload 6 /* tmpStr */
            iload 10 /* lastIndex */
        54: .line 212
            iload 3 /* len */
            iload 10 /* lastIndex */
            isub
            aload 9 /* currentFont */
        55: .line 211
            invokespecial sun.awt.CharsetString.<init>:([CIILsun/awt/FontDescriptor;)V
            astore 12 /* cs */
        start local 12 // sun.awt.CharsetString cs
        56: .line 213
            aload 5 /* mcs */
            ifnonnull 60
        57: .line 214
            iconst_1
            anewarray sun.awt.CharsetString
            astore 11 /* result */
        start local 11 // sun.awt.CharsetString[] result
        58: .line 215
            aload 11 /* result */
            iconst_0
            aload 12 /* cs */
            aastore
        59: .line 216
            goto 62
        end local 11 // sun.awt.CharsetString[] result
        60: .line 217
      StackMap locals: sun.awt.PlatformFont char[] int int int java.util.Vector char[] int int sun.awt.FontDescriptor int top sun.awt.CharsetString
      StackMap stack:
            aload 5 /* mcs */
            aload 12 /* cs */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        61: .line 218
            aload 5 /* mcs */
            aload 5 /* mcs */
            invokevirtual java.util.Vector.size:()I
            anewarray sun.awt.CharsetString
            invokevirtual java.util.Vector.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast sun.awt.CharsetString[]
            astore 11 /* result */
        start local 11 // sun.awt.CharsetString[] result
        62: .line 220
      StackMap locals: sun.awt.PlatformFont char[] int int int java.util.Vector char[] int int sun.awt.FontDescriptor int sun.awt.CharsetString[] sun.awt.CharsetString
      StackMap stack:
            aload 11 /* result */
            areturn
        end local 12 // sun.awt.CharsetString cs
        end local 11 // sun.awt.CharsetString[] result
        end local 10 // int lastIndex
        end local 9 // sun.awt.FontDescriptor currentFont
        end local 8 // boolean encoded
        end local 7 // char tmpChar
        end local 6 // char[] tmpStr
        end local 5 // java.util.Vector mcs
        end local 4 // boolean allowDefault
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] str
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   63     0          this  Lsun/awt/PlatformFont;
            0   63     1           str  [C
            0   63     2        offset  I
            0   63     3           len  I
            0   63     4  allowDefault  Z
            3   63     5           mcs  Ljava/util/Vector<Lsun/awt/CharsetString;>;
            4   63     6        tmpStr  [C
            5   63     7       tmpChar  C
            6   63     8       encoded  Z
            7   63     9   currentFont  Lsun/awt/FontDescriptor;
            8   18    10             i  I
           22   63    10     lastIndex  I
           23   53    11             i  I
           25   51    12            ch  C
           26   51    13            fd  Lsun/awt/FontDescriptor;
           29   39    14             j  I
           58   60    11        result  [Lsun/awt/CharsetString;
           62   63    11        result  [Lsun/awt/CharsetString;
           56   63    12            cs  Lsun/awt/CharsetString;
    MethodParameters:
              Name  Flags
      str           
      offset        
      len           
      allowDefault  

  public boolean mightHaveMultiFontMetrics();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.PlatformFont this
         0: .line 228
            aload 0 /* this */
            getfield sun.awt.PlatformFont.fontConfig:Lsun/awt/FontConfiguration;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/PlatformFont;

  public java.lang.Object[] makeConvertedMultiFontString(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.awt.PlatformFont this
        start local 1 // java.lang.String str
         0: .line 236
            aload 0 /* this */
            aload 1 /* str */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            invokevirtual sun.awt.PlatformFont.makeConvertedMultiFontChars:([CII)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String str
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/PlatformFont;
            0    1     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  public java.lang.Object[] makeConvertedMultiFontChars(char[], int, int);
    descriptor: ([CII)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=19, args_size=4
        start local 0 // sun.awt.PlatformFont this
        start local 1 // char[] data
        start local 2 // int start
        start local 3 // int len
         0: .line 242
            iconst_2
            anewarray java.lang.Object
            astore 4 /* result */
        start local 4 // java.lang.Object[] result
         1: .line 244
            aconst_null
            astore 5 /* convertedData */
        start local 5 // byte[] convertedData
         2: .line 245
            iload 2 /* start */
            istore 6 /* stringIndex */
        start local 6 // int stringIndex
         3: .line 246
            iconst_0
            istore 7 /* convertedDataIndex */
        start local 7 // int convertedDataIndex
         4: .line 247
            iconst_0
            istore 8 /* resultIndex */
        start local 8 // int resultIndex
         5: .line 249
            aconst_null
            astore 10 /* currentFontDescriptor */
        start local 10 // sun.awt.FontDescriptor currentFontDescriptor
         6: .line 250
            aconst_null
            astore 11 /* lastFontDescriptor */
        start local 11 // sun.awt.FontDescriptor lastFontDescriptor
         7: .line 255
            iload 2 /* start */
            iload 3 /* len */
            iadd
            istore 14 /* end */
        start local 14 // int end
         8: .line 256
            iload 2 /* start */
            iflt 9
            iload 14 /* end */
            aload 1 /* data */
            arraylength
            if_icmple 10
         9: .line 257
      StackMap locals: sun.awt.PlatformFont char[] int int java.lang.Object[] byte[] int int int top sun.awt.FontDescriptor sun.awt.FontDescriptor top top int
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:()V
            athrow
        10: .line 260
      StackMap locals:
      StackMap stack:
            iload 6 /* stringIndex */
            iload 14 /* end */
            if_icmplt 105
        11: .line 261
            aconst_null
            areturn
        12: .line 267
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 6 /* stringIndex */
            caload
            istore 12 /* currentDefaultChar */
        start local 12 // char currentDefaultChar
        13: .line 270
            iload 12 /* currentDefaultChar */
            getstatic sun.awt.PlatformFont.FONTCACHEMASK:I
            iand
            istore 9 /* cacheIndex */
        start local 9 // int cacheIndex
        14: .line 272
            aload 0 /* this */
            invokevirtual sun.awt.PlatformFont.getFontCache:()[Ljava/lang/Object;
            iload 9 /* cacheIndex */
            aaload
            checkcast sun.awt.PlatformFont$PlatformFontCache
            astore 13 /* theChar */
        start local 13 // sun.awt.PlatformFont$PlatformFontCache theChar
        15: .line 275
            aload 13 /* theChar */
            ifnull 16
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.uniChar:C
            iload 12 /* currentDefaultChar */
            if_icmpeq 55
        16: .line 278
      StackMap locals: sun.awt.PlatformFont char[] int int java.lang.Object[] byte[] int int int int sun.awt.FontDescriptor sun.awt.FontDescriptor int sun.awt.PlatformFont$PlatformFontCache int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultFont:Lsun/awt/FontDescriptor;
            astore 10 /* currentFontDescriptor */
        17: .line 279
            aload 0 /* this */
            getfield sun.awt.PlatformFont.defaultChar:C
            istore 12 /* currentDefaultChar */
        18: .line 280
            aload 1 /* data */
            iload 6 /* stringIndex */
            caload
            istore 15 /* ch */
        start local 15 // char ch
        19: .line 281
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            arraylength
            istore 16 /* componentCount */
        start local 16 // int componentCount
        20: .line 283
            iconst_0
            istore 17 /* j */
        start local 17 // int j
        21: goto 31
        22: .line 284
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.componentFonts:[Lsun/awt/FontDescriptor;
            iload 17 /* j */
            aaload
            astore 18 /* fontDescriptor */
        start local 18 // sun.awt.FontDescriptor fontDescriptor
        23: .line 286
            aload 18 /* fontDescriptor */
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            invokevirtual java.nio.charset.CharsetEncoder.reset:()Ljava/nio/charset/CharsetEncoder;
            pop
        24: .line 289
            aload 18 /* fontDescriptor */
            iload 15 /* ch */
            invokevirtual sun.awt.FontDescriptor.isExcluded:(C)Z
            ifeq 26
        25: .line 290
            goto 30
        26: .line 292
      StackMap locals: sun.awt.FontDescriptor
      StackMap stack:
            aload 18 /* fontDescriptor */
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            iload 15 /* ch */
            invokevirtual java.nio.charset.CharsetEncoder.canEncode:(C)Z
            ifeq 30
        27: .line 293
            aload 18 /* fontDescriptor */
            astore 10 /* currentFontDescriptor */
        28: .line 294
            iload 15 /* ch */
            istore 12 /* currentDefaultChar */
        29: .line 295
            goto 32
        end local 18 // sun.awt.FontDescriptor fontDescriptor
        30: .line 283
      StackMap locals:
      StackMap stack:
            iinc 17 /* j */ 1
      StackMap locals:
      StackMap stack:
        31: iload 17 /* j */
            iload 16 /* componentCount */
            if_icmplt 22
        end local 17 // int j
        32: .line 299
      StackMap locals:
      StackMap stack:
            iconst_1
            newarray 5
            astore 17 /* input */
        start local 17 // char[] input
        33: .line 300
            aload 17 /* input */
            iconst_0
            iload 12 /* currentDefaultChar */
            castore
        34: .line 302
            new sun.awt.PlatformFont$PlatformFontCache
            dup
            aload 0 /* this */
            invokespecial sun.awt.PlatformFont$PlatformFontCache.<init>:(Lsun/awt/PlatformFont;)V
            astore 13 /* theChar */
        35: .line 303
            aload 10 /* currentFontDescriptor */
            invokevirtual sun.awt.FontDescriptor.useUnicode:()Z
            ifeq 43
        36: .line 309
            getstatic sun.awt.FontDescriptor.isLE:Z
            ifeq 40
        37: .line 310
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
            aload 17 /* input */
            iconst_0
            caload
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        38: .line 311
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
            aload 17 /* input */
            iconst_0
            caload
            bipush 8
            ishr
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        39: .line 312
            goto 47
        40: .line 313
      StackMap locals: char[]
      StackMap stack:
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
            aload 17 /* input */
            iconst_0
            caload
            bipush 8
            ishr
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        41: .line 314
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
            aload 17 /* input */
            iconst_0
            caload
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        42: .line 316
            goto 47
        43: .line 318
      StackMap locals:
      StackMap stack:
            aload 10 /* currentFontDescriptor */
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            aload 17 /* input */
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
        44: .line 319
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
        45: .line 320
            iconst_1
        46: .line 318
            invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
            pop
        47: .line 322
      StackMap locals:
      StackMap stack:
            aload 13 /* theChar */
            aload 10 /* currentFontDescriptor */
            putfield sun.awt.PlatformFont$PlatformFontCache.fontDescriptor:Lsun/awt/FontDescriptor;
        48: .line 323
            aload 13 /* theChar */
            aload 1 /* data */
            iload 6 /* stringIndex */
            caload
            putfield sun.awt.PlatformFont$PlatformFontCache.uniChar:C
        49: .line 324
            aload 0 /* this */
            invokevirtual sun.awt.PlatformFont.getFontCache:()[Ljava/lang/Object;
            iload 9 /* cacheIndex */
            aload 13 /* theChar */
            aastore
        end local 17 // char[] input
        50: .line 325
            goto 55
      StackMap locals: sun.awt.PlatformFont char[] int int java.lang.Object[] byte[] int int int int sun.awt.FontDescriptor sun.awt.FontDescriptor int sun.awt.PlatformFont$PlatformFontCache int int int
      StackMap stack: java.lang.Exception
        51: astore 17 /* e */
        start local 17 // java.lang.Exception e
        52: .line 327
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 17 /* e */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        53: .line 328
            aload 17 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        54: .line 329
            aconst_null
            areturn
        end local 17 // java.lang.Exception e
        end local 16 // int componentCount
        end local 15 // char ch
        55: .line 334
      StackMap locals:
      StackMap stack:
            aload 11 /* lastFontDescriptor */
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.fontDescriptor:Lsun/awt/FontDescriptor;
            if_acmpeq 85
        56: .line 335
            aload 11 /* lastFontDescriptor */
            ifnull 71
        57: .line 336
            aload 4 /* result */
            iload 8 /* resultIndex */
            iinc 8 /* resultIndex */ 1
            aload 11 /* lastFontDescriptor */
            aastore
        58: .line 337
            aload 4 /* result */
            iload 8 /* resultIndex */
            iinc 8 /* resultIndex */ 1
            aload 5 /* convertedData */
            aastore
        59: .line 339
            aload 5 /* convertedData */
            ifnull 65
        60: .line 340
            iinc 7 /* convertedDataIndex */ -4
        61: .line 341
            aload 5 /* convertedData */
            iconst_0
            iload 7 /* convertedDataIndex */
            bipush 24
            ishr
            i2b
            bastore
        62: .line 342
            aload 5 /* convertedData */
            iconst_1
            iload 7 /* convertedDataIndex */
            bipush 16
            ishr
            i2b
            bastore
        63: .line 343
            aload 5 /* convertedData */
            iconst_2
            iload 7 /* convertedDataIndex */
            bipush 8
            ishr
            i2b
            bastore
        64: .line 344
            aload 5 /* convertedData */
            iconst_3
            iload 7 /* convertedDataIndex */
            i2b
            bastore
        65: .line 347
      StackMap locals:
      StackMap stack:
            iload 8 /* resultIndex */
            aload 4 /* result */
            arraylength
            if_icmplt 71
        66: .line 348
            aload 4 /* result */
            arraylength
            iconst_2
            imul
            anewarray java.lang.Object
            astore 15 /* newResult */
        start local 15 // java.lang.Object[] newResult
        67: .line 350
            aload 4 /* result */
            iconst_0
            aload 15 /* newResult */
            iconst_0
        68: .line 351
            aload 4 /* result */
            arraylength
        69: .line 350
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        70: .line 352
            aload 15 /* newResult */
            astore 4 /* result */
        end local 15 // java.lang.Object[] newResult
        71: .line 356
      StackMap locals:
      StackMap stack:
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.fontDescriptor:Lsun/awt/FontDescriptor;
            invokevirtual sun.awt.FontDescriptor.useUnicode:()Z
            ifeq 78
        72: .line 357
            iload 14 /* end */
            iload 6 /* stringIndex */
            isub
            iconst_1
            iadd
        73: .line 358
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.fontDescriptor:Lsun/awt/FontDescriptor;
            getfield sun.awt.FontDescriptor.unicodeEncoder:Ljava/nio/charset/CharsetEncoder;
            invokevirtual java.nio.charset.CharsetEncoder.maxBytesPerChar:()F
            f2i
        74: .line 357
            imul
        75: .line 359
            iconst_4
        76: .line 357
            iadd
            newarray 8
            astore 5 /* convertedData */
        77: .line 360
            goto 83
        78: .line 362
      StackMap locals:
      StackMap stack:
            iload 14 /* end */
            iload 6 /* stringIndex */
            isub
            iconst_1
            iadd
        79: .line 363
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.fontDescriptor:Lsun/awt/FontDescriptor;
            getfield sun.awt.FontDescriptor.encoder:Ljava/nio/charset/CharsetEncoder;
            invokevirtual java.nio.charset.CharsetEncoder.maxBytesPerChar:()F
            f2i
        80: .line 362
            imul
        81: .line 364
            iconst_4
        82: .line 362
            iadd
            newarray 8
            astore 5 /* convertedData */
        83: .line 367
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 7 /* convertedDataIndex */
        84: .line 369
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.fontDescriptor:Lsun/awt/FontDescriptor;
            astore 11 /* lastFontDescriptor */
        85: .line 372
      StackMap locals:
      StackMap stack:
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 15 /* ba */
        start local 15 // byte[] ba
        86: .line 373
            aload 13 /* theChar */
            getfield sun.awt.PlatformFont$PlatformFontCache.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 16 /* size */
        start local 16 // int size
        87: .line 374
            iload 16 /* size */
            iconst_1
            if_icmpne 90
        88: .line 375
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_0
            baload
            bastore
        89: .line 376
            goto 104
        90: .line 377
      StackMap locals: byte[] int
      StackMap stack:
            iload 16 /* size */
            iconst_2
            if_icmpne 94
        91: .line 378
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_0
            baload
            bastore
        92: .line 379
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_1
            baload
            bastore
        93: .line 380
            goto 104
      StackMap locals:
      StackMap stack:
        94: iload 16 /* size */
            iconst_3
            if_icmpne 99
        95: .line 381
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_0
            baload
            bastore
        96: .line 382
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_1
            baload
            bastore
        97: .line 383
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_2
            baload
            bastore
        98: .line 384
            goto 104
      StackMap locals:
      StackMap stack:
        99: iload 16 /* size */
            iconst_4
            if_icmpne 104
       100: .line 385
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_0
            baload
            bastore
       101: .line 386
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_1
            baload
            bastore
       102: .line 387
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_2
            baload
            bastore
       103: .line 388
            aload 5 /* convertedData */
            iload 7 /* convertedDataIndex */
            iinc 7 /* convertedDataIndex */ 1
            aload 15 /* ba */
            iconst_3
            baload
            bastore
       104: .line 390
      StackMap locals:
      StackMap stack:
            iinc 6 /* stringIndex */ 1
        end local 16 // int size
        end local 15 // byte[] ba
        end local 13 // sun.awt.PlatformFont$PlatformFontCache theChar
        end local 12 // char currentDefaultChar
        end local 9 // int cacheIndex
       105: .line 265
      StackMap locals: sun.awt.PlatformFont char[] int int java.lang.Object[] byte[] int int int top sun.awt.FontDescriptor sun.awt.FontDescriptor top top int
      StackMap stack:
            iload 6 /* stringIndex */
            iload 14 /* end */
            if_icmplt 12
       106: .line 393
            aload 4 /* result */
            iload 8 /* resultIndex */
            iinc 8 /* resultIndex */ 1
            aload 11 /* lastFontDescriptor */
            aastore
       107: .line 394
            aload 4 /* result */
            iload 8 /* resultIndex */
            aload 5 /* convertedData */
            aastore
       108: .line 397
            aload 5 /* convertedData */
            ifnull 114
       109: .line 398
            iinc 7 /* convertedDataIndex */ -4
       110: .line 399
            aload 5 /* convertedData */
            iconst_0
            iload 7 /* convertedDataIndex */
            bipush 24
            ishr
            i2b
            bastore
       111: .line 400
            aload 5 /* convertedData */
            iconst_1
            iload 7 /* convertedDataIndex */
            bipush 16
            ishr
            i2b
            bastore
       112: .line 401
            aload 5 /* convertedData */
            iconst_2
            iload 7 /* convertedDataIndex */
            bipush 8
            ishr
            i2b
            bastore
       113: .line 402
            aload 5 /* convertedData */
            iconst_3
            iload 7 /* convertedDataIndex */
            i2b
            bastore
       114: .line 404
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 14 // int end
        end local 11 // sun.awt.FontDescriptor lastFontDescriptor
        end local 10 // sun.awt.FontDescriptor currentFontDescriptor
        end local 8 // int resultIndex
        end local 7 // int convertedDataIndex
        end local 6 // int stringIndex
        end local 5 // byte[] convertedData
        end local 4 // java.lang.Object[] result
        end local 3 // int len
        end local 2 // int start
        end local 1 // char[] data
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  115     0                   this  Lsun/awt/PlatformFont;
            0  115     1                   data  [C
            0  115     2                  start  I
            0  115     3                    len  I
            1  115     4                 result  [Ljava/lang/Object;
            2  115     5          convertedData  [B
            3  115     6            stringIndex  I
            4  115     7     convertedDataIndex  I
            5  115     8            resultIndex  I
           14  105     9             cacheIndex  I
            6  115    10  currentFontDescriptor  Lsun/awt/FontDescriptor;
            7  115    11     lastFontDescriptor  Lsun/awt/FontDescriptor;
           13  105    12     currentDefaultChar  C
           15  105    13                theChar  Lsun/awt/PlatformFont$PlatformFontCache;
            8  115    14                    end  I
           19   55    15                     ch  C
           20   55    16         componentCount  I
           21   32    17                      j  I
           23   30    18         fontDescriptor  Lsun/awt/FontDescriptor;
           33   50    17                  input  [C
           52   55    17                      e  Ljava/lang/Exception;
           67   71    15              newResult  [Ljava/lang/Object;
           86  105    15                     ba  [B
           87  105    16                   size  I
      Exception table:
        from    to  target  type
          32    50      51  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      data   
      start  
      len    

  protected final java.lang.Object[] getFontCache();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.awt.PlatformFont this
         0: .line 419
            aload 0 /* this */
            getfield sun.awt.PlatformFont.fontCache:[Ljava/lang/Object;
            ifnonnull 2
         1: .line 420
            aload 0 /* this */
            getstatic sun.awt.PlatformFont.FONTCACHESIZE:I
            anewarray java.lang.Object
            putfield sun.awt.PlatformFont.fontCache:[Ljava/lang/Object;
         2: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.PlatformFont.fontCache:[Ljava/lang/Object;
            areturn
        end local 0 // sun.awt.PlatformFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/awt/PlatformFont;

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
}
SourceFile: "PlatformFont.java"
NestMembers:
  sun.awt.PlatformFont$PlatformFontCache
InnerClasses:
  PlatformFontCache = sun.awt.PlatformFont$PlatformFontCache of sun.awt.PlatformFont