public final class sun.font.CStrike extends sun.font.PhysicalStrike
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.font.CStrike
  super_class: sun.font.PhysicalStrike
{
  private final sun.font.CFont nativeFont;
    descriptor: Lsun/font/CFont;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.awt.geom.AffineTransform invDevTx;
    descriptor: Ljava/awt/geom/AffineTransform;
    flags: (0x0002) ACC_PRIVATE

  private final sun.font.CStrike$GlyphInfoCache glyphInfoCache;
    descriptor: Lsun/font/CStrike$GlyphInfoCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.font.CStrike$GlyphAdvanceCache glyphAdvanceCache;
    descriptor: Lsun/font/CStrike$GlyphAdvanceCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long nativeStrikePtr;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private static native long createNativeStrikePtr(long, double[], double[], int, int);
    descriptor: (J[D[DII)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeFontPtr   
      glyphTx         
      invDevTxMatrix  
      aaHint          
      fmHint          

  private static native void disposeNativeStrikePtr(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      nativeStrikePtr  

  private static native sun.font.StrikeMetrics getFontMetrics(long);
    descriptor: (J)Lsun/font/StrikeMetrics;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      nativeStrikePtr  

  private static native void getGlyphImagePtrsNative(long, long[], int[], int);
    descriptor: (J[J[II)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      nativeStrikePtr  
      glyphInfos       
      uniCodes         
      len              

  private static native float getNativeGlyphAdvance(long, int);
    descriptor: (JI)F
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      nativeStrikePtr  
      glyphCode        

  private static native java.awt.geom.GeneralPath getNativeGlyphOutline(long, int, double, double);
    descriptor: (JIDD)Ljava/awt/geom/GeneralPath;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      nativeStrikePtr  
      glyphCode        
      x                
      y                

  private static native void getNativeGlyphImageBounds(long, int, java.awt.geom.Rectangle2D$Float, double, double);
    descriptor: (JILjava/awt/geom/Rectangle2D$Float;DD)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      nativeStrikePtr  
      glyphCode        
      result           
      x                
      y                

  void <init>(sun.font.CFont, sun.font.FontStrikeDesc);
    descriptor: (Lsun/font/CFont;Lsun/font/FontStrikeDesc;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.font.CStrike this
        start local 1 // sun.font.CFont font
        start local 2 // sun.font.FontStrikeDesc inDesc
         0: .line 77
            aload 0 /* this */
            invokespecial sun.font.PhysicalStrike.<init>:()V
         1: .line 78
            aload 0 /* this */
            aload 1 /* font */
            putfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
         2: .line 79
            aload 0 /* this */
            aload 2 /* inDesc */
            putfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
         3: .line 80
            aload 0 /* this */
            new sun.font.CStrike$GlyphInfoCache
            dup
            aload 1 /* font */
            aload 0 /* this */
            getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
            invokespecial sun.font.CStrike$GlyphInfoCache.<init>:(Lsun/font/Font2D;Lsun/font/FontStrikeDesc;)V
            putfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
         4: .line 81
            aload 0 /* this */
            new sun.font.CStrike$GlyphAdvanceCache
            dup
            invokespecial sun.font.CStrike$GlyphAdvanceCache.<init>:()V
            putfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
         5: .line 82
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            putfield sun.font.CStrike.disposer:Lsun/font/FontStrikeDisposer;
         6: .line 88
            aload 2 /* inDesc */
            getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
            ifnull 10
            aload 2 /* inDesc */
            getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
            invokevirtual java.awt.geom.AffineTransform.isIdentity:()Z
            ifne 10
         7: .line 90
            aload 0 /* this */
            aload 2 /* inDesc */
            getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
            invokevirtual java.awt.geom.AffineTransform.createInverse:()Ljava/awt/geom/AffineTransform;
            putfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
         8: .line 91
            goto 10
      StackMap locals: sun.font.CStrike sun.font.CFont sun.font.FontStrikeDesc
      StackMap stack: java.awt.geom.NoninvertibleTransformException
         9: pop
        10: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.font.FontStrikeDesc inDesc
        end local 1 // sun.font.CFont font
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lsun/font/CStrike;
            0   11     1    font  Lsun/font/CFont;
            0   11     2  inDesc  Lsun/font/FontStrikeDesc;
      Exception table:
        from    to  target  type
           7     8       9  Class java.awt.geom.NoninvertibleTransformException
    MethodParameters:
        Name  Flags
      font    final
      inDesc  final

  public long getNativeStrikePtr();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // sun.font.CStrike this
         0: .line 100
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            lconst_0
            lcmp
            ifeq 2
         1: .line 101
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            lreturn
         2: .line 104
      StackMap locals:
      StackMap stack:
            bipush 6
            newarray 7
            astore 1 /* glyphTx */
        start local 1 // double[] glyphTx
         3: .line 105
            aload 0 /* this */
            getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
            getfield sun.font.FontStrikeDesc.glyphTx:Ljava/awt/geom/AffineTransform;
            aload 1 /* glyphTx */
            invokevirtual java.awt.geom.AffineTransform.getMatrix:([D)V
         4: .line 107
            bipush 6
            newarray 7
            astore 2 /* invDevTxMatrix */
        start local 2 // double[] invDevTxMatrix
         5: .line 108
            aload 0 /* this */
            getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
            ifnonnull 9
         6: .line 109
            aload 2 /* invDevTxMatrix */
            iconst_0
            dconst_1
            dastore
         7: .line 110
            aload 2 /* invDevTxMatrix */
            iconst_3
            dconst_1
            dastore
         8: .line 111
            goto 10
         9: .line 112
      StackMap locals: double[] double[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
            aload 2 /* invDevTxMatrix */
            invokevirtual java.awt.geom.AffineTransform.getMatrix:([D)V
        10: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
            getfield sun.font.FontStrikeDesc.aaHint:I
            istore 3 /* aaHint */
        start local 3 // int aaHint
        11: .line 116
            aload 0 /* this */
            getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
            getfield sun.font.FontStrikeDesc.fmHint:I
            istore 4 /* fmHint */
        start local 4 // int fmHint
        12: .line 118
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        13: .line 119
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            lconst_0
            lcmp
            ifeq 16
        14: .line 120
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            aload 5
            monitorexit
        15: lreturn
        16: .line 122
      StackMap locals: int int sun.font.CStrike
      StackMap stack:
            aload 0 /* this */
        17: .line 123
            aload 0 /* this */
            getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getNativeFontPtr:()J
        18: .line 124
            aload 1 /* glyphTx */
            aload 2 /* invDevTxMatrix */
            iload 3 /* aaHint */
            iload 4 /* fmHint */
        19: .line 123
            invokestatic sun.font.CStrike.createNativeStrikePtr:(J[D[DII)J
        20: .line 122
            putfield sun.font.CStrike.nativeStrikePtr:J
        21: .line 118
            aload 5
            monitorexit
        22: goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: aload 5
            monitorexit
        24: athrow
        25: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            lreturn
        end local 4 // int fmHint
        end local 3 // int aaHint
        end local 2 // double[] invDevTxMatrix
        end local 1 // double[] glyphTx
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lsun/font/CStrike;
            3   26     1         glyphTx  [D
            5   26     2  invDevTxMatrix  [D
           11   26     3          aaHint  I
           12   26     4          fmHint  I
      Exception table:
        from    to  target  type
          13    15      23  any
          16    22      23  any
          23    24      23  any

  protected synchronized void finalize();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.font.CStrike this
         0: .line 131
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            lconst_0
            lcmp
            ifeq 2
         1: .line 132
            aload 0 /* this */
            getfield sun.font.CStrike.nativeStrikePtr:J
            invokestatic sun.font.CStrike.disposeNativeStrikePtr:(J)V
         2: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lconst_0
            putfield sun.font.CStrike.nativeStrikePtr:J
         3: .line 135
            return
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/font/CStrike;
    Exceptions:
      throws java.lang.Throwable

  public int getNumGlyphs();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.font.CStrike this
         0: .line 140
            aload 0 /* this */
            getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getNumGlyphs:()I
            ireturn
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/font/CStrike;

  sun.font.StrikeMetrics getFontMetrics();
    descriptor: ()Lsun/font/StrikeMetrics;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.font.CStrike this
         0: .line 145
            aload 0 /* this */
            getfield sun.font.CStrike.strikeMetrics:Lsun/font/StrikeMetrics;
            ifnonnull 6
         1: .line 146
            aload 0 /* this */
            invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
            invokestatic sun.font.CStrike.getFontMetrics:(J)Lsun/font/StrikeMetrics;
            astore 1 /* metrics */
        start local 1 // sun.font.StrikeMetrics metrics
         2: .line 147
            aload 0 /* this */
            getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
            ifnull 4
         3: .line 148
            aload 1 /* metrics */
            aload 0 /* this */
            getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
            invokevirtual sun.font.StrikeMetrics.convertToUserSpace:(Ljava/awt/geom/AffineTransform;)V
         4: .line 150
      StackMap locals: sun.font.StrikeMetrics
      StackMap stack:
            aload 1 /* metrics */
            aload 0 /* this */
            getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
            getfield sun.font.FontStrikeDesc.glyphTx:Ljava/awt/geom/AffineTransform;
            invokevirtual sun.font.StrikeMetrics.convertToUserSpace:(Ljava/awt/geom/AffineTransform;)V
         5: .line 151
            aload 0 /* this */
            aload 1 /* metrics */
            putfield sun.font.CStrike.strikeMetrics:Lsun/font/StrikeMetrics;
        end local 1 // sun.font.StrikeMetrics metrics
         6: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CStrike.strikeMetrics:Lsun/font/StrikeMetrics;
            areturn
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lsun/font/CStrike;
            2    6     1  metrics  Lsun/font/StrikeMetrics;

  float getGlyphAdvance(int);
    descriptor: (I)F
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
         0: .line 158
            aload 0 /* this */
            iload 1 /* glyphCode */
            invokevirtual sun.font.CStrike.getCachedNativeGlyphAdvance:(I)F
            freturn
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lsun/font/CStrike;
            0    1     1  glyphCode  I
    MethodParameters:
           Name  Flags
      glyphCode  final

  float getCodePointAdvance(int);
    descriptor: (I)F
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // int cp
         0: .line 163
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getMapper:()Lsun/font/CharToGlyphMapper;
            iload 1 /* cp */
            invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(I)I
            invokevirtual sun.font.CStrike.getGlyphAdvance:(I)F
            freturn
        end local 1 // int cp
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/font/CStrike;
            0    1     1    cp  I
    MethodParameters:
      Name  Flags
      cp    final

  java.awt.geom.Point2D$Float getCharMetrics(char);
    descriptor: (C)Ljava/awt/geom/Point2D$Float;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // char ch
         0: .line 168
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
            invokevirtual sun.font.CFont.getMapper:()Lsun/font/CharToGlyphMapper;
            iload 1 /* ch */
            invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(C)I
            invokevirtual sun.font.CStrike.getGlyphMetrics:(I)Ljava/awt/geom/Point2D$Float;
            areturn
        end local 1 // char ch
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/font/CStrike;
            0    1     1    ch  C
    MethodParameters:
      Name  Flags
      ch    final

  java.awt.geom.Point2D$Float getGlyphMetrics(int);
    descriptor: (I)Ljava/awt/geom/Point2D$Float;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
         0: .line 173
            new java.awt.geom.Point2D$Float
            dup
            aload 0 /* this */
            iload 1 /* glyphCode */
            invokevirtual sun.font.CStrike.getGlyphAdvance:(I)F
            fconst_0
            invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
            areturn
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lsun/font/CStrike;
            0    1     1  glyphCode  I
    MethodParameters:
           Name  Flags
      glyphCode  final

  java.awt.geom.Rectangle2D$Float getGlyphOutlineBounds(int);
    descriptor: (I)Ljava/awt/geom/Rectangle2D$Float;
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
         0: .line 177
            aload 0 /* this */
            iload 1 /* glyphCode */
            fconst_0
            fconst_0
            invokevirtual sun.font.CStrike.getGlyphOutline:(IFF)Ljava/awt/geom/GeneralPath;
            astore 2 /* gp */
        start local 2 // java.awt.geom.GeneralPath gp
         1: .line 178
            aload 2 /* gp */
            invokevirtual java.awt.geom.GeneralPath.getBounds2D:()Ljava/awt/geom/Rectangle2D;
            astore 3 /* r2d */
        start local 3 // java.awt.geom.Rectangle2D r2d
         2: .line 180
            aload 3 /* r2d */
            instanceof java.awt.geom.Rectangle2D$Float
            ifeq 5
         3: .line 181
            aload 3 /* r2d */
            checkcast java.awt.geom.Rectangle2D$Float
            astore 4 /* r2df */
        start local 4 // java.awt.geom.Rectangle2D$Float r2df
         4: .line 182
            goto 10
        end local 4 // java.awt.geom.Rectangle2D$Float r2df
         5: .line 183
      StackMap locals: java.awt.geom.GeneralPath java.awt.geom.Rectangle2D
      StackMap stack:
            aload 3 /* r2d */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            d2f
            fstore 5 /* x */
        start local 5 // float x
         6: .line 184
            aload 3 /* r2d */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            d2f
            fstore 6 /* y */
        start local 6 // float y
         7: .line 185
            aload 3 /* r2d */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            d2f
            fstore 7 /* w */
        start local 7 // float w
         8: .line 186
            aload 3 /* r2d */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            d2f
            fstore 8 /* h */
        start local 8 // float h
         9: .line 187
            new java.awt.geom.Rectangle2D$Float
            dup
            fload 5 /* x */
            fload 6 /* y */
            fload 7 /* w */
            fload 8 /* h */
            invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
            astore 4 /* r2df */
        end local 8 // float h
        end local 7 // float w
        end local 6 // float y
        end local 5 // float x
        start local 4 // java.awt.geom.Rectangle2D$Float r2df
        10: .line 189
      StackMap locals: java.awt.geom.Rectangle2D$Float
      StackMap stack:
            aload 4 /* r2df */
            areturn
        end local 4 // java.awt.geom.Rectangle2D$Float r2df
        end local 3 // java.awt.geom.Rectangle2D r2d
        end local 2 // java.awt.geom.GeneralPath gp
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/font/CStrike;
            0   11     1  glyphCode  I
            1   11     2         gp  Ljava/awt/geom/GeneralPath;
            2   11     3        r2d  Ljava/awt/geom/Rectangle2D;
            4    5     4       r2df  Ljava/awt/geom/Rectangle2D$Float;
           10   11     4       r2df  Ljava/awt/geom/Rectangle2D$Float;
            6   10     5          x  F
            7   10     6          y  F
            8   10     7          w  F
            9   10     8          h  F
    MethodParameters:
           Name  Flags
      glyphCode  

  void getGlyphImageBounds(int, java.awt.geom.Point2D$Float, java.awt.Rectangle);
    descriptor: (ILjava/awt/geom/Point2D$Float;Ljava/awt/Rectangle;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
        start local 2 // java.awt.geom.Point2D$Float pt
        start local 3 // java.awt.Rectangle result
         0: .line 194
            new java.awt.geom.Rectangle2D$Float
            dup
            invokespecial java.awt.geom.Rectangle2D$Float.<init>:()V
            astore 4 /* floatRect */
        start local 4 // java.awt.geom.Rectangle2D$Float floatRect
         1: .line 196
            aload 0 /* this */
            getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
            ifnull 3
         2: .line 197
            aload 0 /* this */
            getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
            aload 2 /* pt */
            aload 2 /* pt */
            invokevirtual java.awt.geom.AffineTransform.transform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
            pop
         3: .line 200
      StackMap locals: java.awt.geom.Rectangle2D$Float
      StackMap stack:
            aload 0 /* this */
            iload 1 /* glyphCode */
            aload 2 /* pt */
            getfield java.awt.geom.Point2D$Float.x:F
            aload 2 /* pt */
            getfield java.awt.geom.Point2D$Float.y:F
            aload 4 /* floatRect */
            invokevirtual sun.font.CStrike.getGlyphImageBounds:(IFFLjava/awt/geom/Rectangle2D$Float;)V
         4: .line 202
            aload 4 /* floatRect */
            getfield java.awt.geom.Rectangle2D$Float.width:F
            fconst_0
            fcmpl
            ifne 7
            aload 4 /* floatRect */
            getfield java.awt.geom.Rectangle2D$Float.height:F
            fconst_0
            fcmpl
            ifne 7
         5: .line 203
            aload 3 /* result */
            dconst_0
            dconst_0
            ldc -1.0
            ldc -1.0
            invokevirtual java.awt.Rectangle.setRect:(DDDD)V
         6: .line 204
            return
         7: .line 207
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 4 /* floatRect */
            getfield java.awt.geom.Rectangle2D$Float.x:F
            aload 2 /* pt */
            getfield java.awt.geom.Point2D$Float.x:F
            fadd
            f2d
            aload 4 /* floatRect */
            getfield java.awt.geom.Rectangle2D$Float.y:F
            aload 2 /* pt */
            getfield java.awt.geom.Point2D$Float.y:F
            fadd
            f2d
            aload 4 /* floatRect */
            getfield java.awt.geom.Rectangle2D$Float.width:F
            f2d
            aload 4 /* floatRect */
            getfield java.awt.geom.Rectangle2D$Float.height:F
            f2d
            invokevirtual java.awt.Rectangle.setRect:(DDDD)V
         8: .line 208
            return
        end local 4 // java.awt.geom.Rectangle2D$Float floatRect
        end local 3 // java.awt.Rectangle result
        end local 2 // java.awt.geom.Point2D$Float pt
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lsun/font/CStrike;
            0    9     1  glyphCode  I
            0    9     2         pt  Ljava/awt/geom/Point2D$Float;
            0    9     3     result  Ljava/awt/Rectangle;
            1    9     4  floatRect  Ljava/awt/geom/Rectangle2D$Float;
    MethodParameters:
           Name  Flags
      glyphCode  
      pt         
      result     

  private void getGlyphImageBounds(int, float, float, java.awt.geom.Rectangle2D$Float);
    descriptor: (IFFLjava/awt/geom/Rectangle2D$Float;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
        start local 2 // float x
        start local 3 // float y
        start local 4 // java.awt.geom.Rectangle2D$Float floatRect
         0: .line 211
            aload 0 /* this */
            invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
            iload 1 /* glyphCode */
            aload 4 /* floatRect */
            fload 2 /* x */
            f2d
            fload 3 /* y */
            f2d
            invokestatic sun.font.CStrike.getNativeGlyphImageBounds:(JILjava/awt/geom/Rectangle2D$Float;DD)V
         1: .line 212
            return
        end local 4 // java.awt.geom.Rectangle2D$Float floatRect
        end local 3 // float y
        end local 2 // float x
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lsun/font/CStrike;
            0    2     1  glyphCode  I
            0    2     2          x  F
            0    2     3          y  F
            0    2     4  floatRect  Ljava/awt/geom/Rectangle2D$Float;
    MethodParameters:
           Name  Flags
      glyphCode  
      x          
      y          
      floatRect  

  java.awt.geom.GeneralPath getGlyphOutline(int, float, float);
    descriptor: (IFF)Ljava/awt/geom/GeneralPath;
    flags: (0x0000) 
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
        start local 2 // float x
        start local 3 // float y
         0: .line 215
            aload 0 /* this */
            invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
            iload 1 /* glyphCode */
            fload 2 /* x */
            f2d
            fload 3 /* y */
            f2d
            invokestatic sun.font.CStrike.getNativeGlyphOutline:(JIDD)Ljava/awt/geom/GeneralPath;
            areturn
        end local 3 // float y
        end local 2 // float x
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lsun/font/CStrike;
            0    1     1  glyphCode  I
            0    1     2          x  F
            0    1     3          y  F
    MethodParameters:
           Name  Flags
      glyphCode  
      x          
      y          

  java.awt.geom.GeneralPath getGlyphVectorOutline(int[], float, float);
    descriptor: ([IFF)Ljava/awt/geom/GeneralPath;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.font.CStrike this
        start local 1 // int[] glyphs
        start local 2 // float x
        start local 3 // float y
         0: .line 220
            new java.lang.Error
            dup
            ldc "not implemented yet"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // float y
        end local 2 // float x
        end local 1 // int[] glyphs
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/font/CStrike;
            0    1     1  glyphs  [I
            0    1     2       x  F
            0    1     3       y  F
    MethodParameters:
        Name  Flags
      glyphs  
      x       
      y       

  long getGlyphImagePtr(int);
    descriptor: (I)J
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
         0: .line 225
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            dup
            astore 2
            monitorenter
         1: .line 226
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 1 /* glyphCode */
            invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
            lstore 3 /* ptr */
        start local 3 // long ptr
         2: .line 227
            lload 3 /* ptr */
            lconst_0
            lcmp
            ifeq 4
            lload 3 /* ptr */
            aload 2
            monitorexit
         3: lreturn
         4: .line 229
      StackMap locals: sun.font.CStrike$GlyphInfoCache long
      StackMap stack:
            iconst_1
            newarray 11
            astore 5 /* ptrs */
        start local 5 // long[] ptrs
         5: .line 230
            iconst_1
            newarray 10
            astore 6 /* codes */
        start local 6 // int[] codes
         6: .line 231
            aload 6 /* codes */
            iconst_0
            iload 1 /* glyphCode */
            iastore
         7: .line 233
            aload 0 /* this */
            aload 6 /* codes */
            aload 5 /* ptrs */
            iconst_1
            invokevirtual sun.font.CStrike.getGlyphImagePtrs:([I[JI)V
         8: .line 235
            aload 5 /* ptrs */
            iconst_0
            laload
            lstore 3 /* ptr */
         9: .line 236
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 1 /* glyphCode */
            lload 3 /* ptr */
            invokevirtual sun.font.CStrike$GlyphInfoCache.put:(IJ)V
        10: .line 238
            lload 3 /* ptr */
            aload 2
            monitorexit
        11: lreturn
        end local 6 // int[] codes
        end local 5 // long[] ptrs
        end local 3 // long ptr
        12: .line 225
      StackMap locals: sun.font.CStrike int sun.font.CStrike$GlyphInfoCache
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        13: athrow
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lsun/font/CStrike;
            0   14     1  glyphCode  I
            2   12     3        ptr  J
            5   12     5       ptrs  [J
            6   12     6      codes  [I
      Exception table:
        from    to  target  type
           1     3      12  any
           4    11      12  any
          12    13      12  any
    MethodParameters:
           Name  Flags
      glyphCode  

  void getGlyphImagePtrs(int[], long[], int);
    descriptor: ([I[JI)V
    flags: (0x0000) 
    Code:
      stack=4, locals=17, args_size=4
        start local 0 // sun.font.CStrike this
        start local 1 // int[] glyphCodes
        start local 2 // long[] images
        start local 3 // int len
         0: .line 244
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            dup
            astore 4
            monitorenter
         1: .line 247
            iconst_0
            istore 5 /* missed */
        start local 5 // int missed
         2: .line 248
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 12
         4: .line 249
      StackMap locals: sun.font.CStrike$GlyphInfoCache int int
      StackMap stack:
            aload 1 /* glyphCodes */
            iload 6 /* i */
            iaload
            istore 7 /* code */
        start local 7 // int code
         5: .line 251
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 7 /* code */
            invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
            lstore 8 /* ptr */
        start local 8 // long ptr
         6: .line 252
            lload 8 /* ptr */
            lconst_0
            lcmp
            ifeq 9
         7: .line 253
            aload 2 /* images */
            iload 6 /* i */
            lload 8 /* ptr */
            lastore
         8: .line 254
            goto 11
         9: .line 257
      StackMap locals: int long
      StackMap stack:
            aload 2 /* images */
            iload 6 /* i */
            lconst_0
            lastore
        10: .line 258
            iinc 5 /* missed */ 1
        end local 8 // long ptr
        end local 7 // int code
        11: .line 248
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* i */
            iload 3 /* len */
            if_icmplt 4
        end local 6 // int i
        13: .line 262
            iload 5 /* missed */
            ifne 16
        14: .line 263
            aload 4
            monitorexit
        15: return
        16: .line 267
      StackMap locals:
      StackMap stack:
            iload 5 /* missed */
            newarray 10
            astore 6 /* filteredCodes */
        start local 6 // int[] filteredCodes
        17: .line 269
            iload 5 /* missed */
            newarray 10
            astore 7 /* filteredIndicies */
        start local 7 // int[] filteredIndicies
        18: .line 273
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        19: .line 274
            iconst_0
            istore 9 /* dupes */
        start local 9 // int dupes
        20: .line 275
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        21: goto 35
        22: .line 276
      StackMap locals: sun.font.CStrike int[] long[] int sun.font.CStrike$GlyphInfoCache int int[] int[] int int int
      StackMap stack:
            aload 2 /* images */
            iload 10 /* i */
            laload
            lconst_0
            lcmp
            ifeq 23
            goto 34
        23: .line 278
      StackMap locals:
      StackMap stack:
            aload 1 /* glyphCodes */
            iload 10 /* i */
            iaload
            istore 11 /* code */
        start local 11 // int code
        24: .line 282
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 11 /* code */
            invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
            ldc -1
            lcmp
            ifne 29
        25: .line 283
            aload 7 /* filteredIndicies */
            iload 8 /* j */
            iconst_m1
            iastore
        26: .line 284
            iinc 9 /* dupes */ 1
        27: .line 285
            iinc 8 /* j */ 1
        28: .line 286
            goto 34
        29: .line 292
      StackMap locals: int
      StackMap stack:
            iload 8 /* j */
            iload 9 /* dupes */
            isub
            istore 12 /* k */
        start local 12 // int k
        30: .line 293
            aload 6 /* filteredCodes */
            iload 12 /* k */
            iload 11 /* code */
            iastore
        31: .line 294
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 11 /* code */
            ldc -1
            invokevirtual sun.font.CStrike$GlyphInfoCache.put:(IJ)V
        32: .line 295
            aload 7 /* filteredIndicies */
            iload 8 /* j */
            iload 12 /* k */
            iastore
        33: .line 296
            iinc 8 /* j */ 1
        end local 12 // int k
        end local 11 // int code
        34: .line 275
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 10 /* i */
            iload 3 /* len */
            if_icmplt 22
        end local 10 // int i
        36: .line 299
            iload 8 /* j */
            iload 9 /* dupes */
            isub
            istore 10 /* filteredRunLen */
        start local 10 // int filteredRunLen
        37: .line 300
            iload 10 /* filteredRunLen */
            newarray 11
            astore 11 /* filteredImages */
        start local 11 // long[] filteredImages
        38: .line 303
            aload 0 /* this */
            aload 11 /* filteredImages */
            aload 6 /* filteredCodes */
            iload 10 /* filteredRunLen */
            invokevirtual sun.font.CStrike.getFilteredGlyphImagePtrs:([J[II)V
        39: .line 307
            iconst_0
            istore 8 /* j */
        40: .line 308
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        41: goto 54
        42: .line 309
      StackMap locals: long[] int
      StackMap stack:
            aload 2 /* images */
            iload 12 /* i */
            laload
            lconst_0
            lcmp
            ifeq 44
            aload 2 /* images */
            iload 12 /* i */
            laload
            ldc -1
            lcmp
            ifeq 44
        43: .line 310
            goto 53
        44: .line 314
      StackMap locals:
      StackMap stack:
            aload 7 /* filteredIndicies */
            iload 8 /* j */
            iaload
            istore 13 /* k */
        start local 13 // int k
        45: .line 315
            aload 1 /* glyphCodes */
            iload 12 /* i */
            iaload
            istore 14 /* code */
        start local 14 // int code
        46: .line 316
            iload 13 /* k */
            i2l
            ldc -1
            lcmp
            ifne 49
        47: .line 318
            aload 2 /* images */
            iload 12 /* i */
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 14 /* code */
            invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
            lastore
        48: .line 319
            goto 52
        49: .line 322
      StackMap locals: int int
      StackMap stack:
            aload 11 /* filteredImages */
            iload 13 /* k */
            laload
            lstore 15 /* ptr */
        start local 15 // long ptr
        50: .line 323
            aload 2 /* images */
            iload 12 /* i */
            lload 15 /* ptr */
            lastore
        51: .line 324
            aload 0 /* this */
            getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
            iload 14 /* code */
            lload 15 /* ptr */
            invokevirtual sun.font.CStrike$GlyphInfoCache.put:(IJ)V
        end local 15 // long ptr
        52: .line 327
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
        end local 14 // int code
        end local 13 // int k
        53: .line 308
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        54: iload 12 /* i */
            iload 3 /* len */
            if_icmplt 42
        end local 12 // int i
        end local 11 // long[] filteredImages
        end local 10 // int filteredRunLen
        end local 9 // int dupes
        end local 8 // int j
        end local 7 // int[] filteredIndicies
        end local 6 // int[] filteredCodes
        end local 5 // int missed
        55: .line 244
            aload 4
            monitorexit
        56: goto 59
      StackMap locals: sun.font.CStrike int[] long[] int sun.font.CStrike$GlyphInfoCache
      StackMap stack: java.lang.Throwable
        57: aload 4
            monitorexit
        58: athrow
        59: .line 330
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // long[] images
        end local 1 // int[] glyphCodes
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   60     0              this  Lsun/font/CStrike;
            0   60     1        glyphCodes  [I
            0   60     2            images  [J
            0   60     3               len  I
            2   55     5            missed  I
            3   13     6                 i  I
            5   11     7              code  I
            6   11     8               ptr  J
           17   55     6     filteredCodes  [I
           18   55     7  filteredIndicies  [I
           19   55     8                 j  I
           20   55     9             dupes  I
           21   36    10                 i  I
           24   34    11              code  I
           30   34    12                 k  I
           37   55    10    filteredRunLen  I
           38   55    11    filteredImages  [J
           41   55    12                 i  I
           45   53    13                 k  I
           46   53    14              code  I
           50   52    15               ptr  J
      Exception table:
        from    to  target  type
           1    15      57  any
          16    56      57  any
          57    58      57  any
    MethodParameters:
            Name  Flags
      glyphCodes  
      images      
      len         

  private void getFilteredGlyphImagePtrs(long[], int[], int);
    descriptor: ([J[II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.font.CStrike this
        start local 1 // long[] glyphInfos
        start local 2 // int[] uniCodes
        start local 3 // int len
         0: .line 335
            aload 0 /* this */
            invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
            aload 1 /* glyphInfos */
            aload 2 /* uniCodes */
            iload 3 /* len */
            invokestatic sun.font.CStrike.getGlyphImagePtrsNative:(J[J[II)V
         1: .line 336
            return
        end local 3 // int len
        end local 2 // int[] uniCodes
        end local 1 // long[] glyphInfos
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/font/CStrike;
            0    2     1  glyphInfos  [J
            0    2     2    uniCodes  [I
            0    2     3         len  I
    MethodParameters:
            Name  Flags
      glyphInfos  
      uniCodes    
      len         

  private float getCachedNativeGlyphAdvance(int);
    descriptor: (I)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.font.CStrike this
        start local 1 // int glyphCode
         0: .line 339
            aload 0 /* this */
            getfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
            dup
            astore 2
            monitorenter
         1: .line 340
            aload 0 /* this */
            getfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
            iload 1 /* glyphCode */
            invokevirtual sun.font.CStrike$GlyphAdvanceCache.get:(I)F
            fstore 3 /* advance */
        start local 3 // float advance
         2: .line 341
            fload 3 /* advance */
            fconst_0
            fcmpl
            ifeq 5
         3: .line 342
            fload 3 /* advance */
            aload 2
            monitorexit
         4: freturn
         5: .line 345
      StackMap locals: sun.font.CStrike$GlyphAdvanceCache float
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
            iload 1 /* glyphCode */
            invokestatic sun.font.CStrike.getNativeGlyphAdvance:(JI)F
            fstore 3 /* advance */
         6: .line 346
            aload 0 /* this */
            getfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
            iload 1 /* glyphCode */
            fload 3 /* advance */
            invokevirtual sun.font.CStrike$GlyphAdvanceCache.put:(IF)V
         7: .line 347
            fload 3 /* advance */
            aload 2
            monitorexit
         8: freturn
        end local 3 // float advance
         9: .line 339
      StackMap locals: sun.font.CStrike int sun.font.CStrike$GlyphAdvanceCache
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        10: athrow
        end local 1 // int glyphCode
        end local 0 // sun.font.CStrike this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/font/CStrike;
            0   11     1  glyphCode  I
            2    9     3    advance  F
      Exception table:
        from    to  target  type
           1     4       9  any
           5     8       9  any
           9    10       9  any
    MethodParameters:
           Name  Flags
      glyphCode  
}
SourceFile: "CStrike.java"
NestMembers:
  sun.font.CStrike$GlyphAdvanceCache  sun.font.CStrike$GlyphAdvanceCache$SparseBitShiftingTwoLayerArray  sun.font.CStrike$GlyphInfoCache  sun.font.CStrike$GlyphInfoCache$SparseBitShiftingTwoLayerArray
InnerClasses:
  public Float = java.awt.geom.Point2D$Float of java.awt.geom.Point2D
  public Float = java.awt.geom.Rectangle2D$Float of java.awt.geom.Rectangle2D
  private GlyphAdvanceCache = sun.font.CStrike$GlyphAdvanceCache of sun.font.CStrike
  private GlyphInfoCache = sun.font.CStrike$GlyphInfoCache of sun.font.CStrike