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 start local 1 start local 2 0: aload 0
invokespecial sun.font.PhysicalStrike.<init>:()V
1: aload 0
aload 1
putfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
2: aload 0
aload 2
putfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
3: aload 0
new sun.font.CStrike$GlyphInfoCache
dup
aload 1
aload 0
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: aload 0
new sun.font.CStrike$GlyphAdvanceCache
dup
invokespecial sun.font.CStrike$GlyphAdvanceCache.<init>:()V
putfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
5: aload 0
aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
putfield sun.font.CStrike.disposer:Lsun/font/FontStrikeDisposer;
6: aload 2
getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
ifnull 10
aload 2
getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
invokevirtual java.awt.geom.AffineTransform.isIdentity:()Z
ifne 10
7: aload 0
aload 2
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: goto 10
StackMap locals: sun.font.CStrike sun.font.CFont sun.font.FontStrikeDesc
StackMap stack: java.awt.geom.NoninvertibleTransformException
9: pop
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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 0: aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
lconst_0
lcmp
ifeq 2
1: aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
lreturn
2: StackMap locals:
StackMap stack:
bipush 6
newarray 7
astore 1
start local 1 3: aload 0
getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.glyphTx:Ljava/awt/geom/AffineTransform;
aload 1
invokevirtual java.awt.geom.AffineTransform.getMatrix:([D)V
4: bipush 6
newarray 7
astore 2
start local 2 5: aload 0
getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
ifnonnull 9
6: aload 2
iconst_0
dconst_1
dastore
7: aload 2
iconst_3
dconst_1
dastore
8: goto 10
9: StackMap locals: double[] double[]
StackMap stack:
aload 0
getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
aload 2
invokevirtual java.awt.geom.AffineTransform.getMatrix:([D)V
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.aaHint:I
istore 3
start local 3 11: aload 0
getfield sun.font.CStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.fmHint:I
istore 4
start local 4 12: aload 0
dup
astore 5
monitorenter
13: aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
lconst_0
lcmp
ifeq 16
14: aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
aload 5
monitorexit
15: lreturn
16: StackMap locals: int int sun.font.CStrike
StackMap stack:
aload 0
17: aload 0
getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
invokevirtual sun.font.CFont.getNativeFontPtr:()J
18: aload 1
aload 2
iload 3
iload 4
19: invokestatic sun.font.CStrike.createNativeStrikePtr:(J[D[DII)J
20: putfield sun.font.CStrike.nativeStrikePtr:J
21: aload 5
monitorexit
22: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
23: aload 5
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
lreturn
end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
lconst_0
lcmp
ifeq 2
1: aload 0
getfield sun.font.CStrike.nativeStrikePtr:J
invokestatic sun.font.CStrike.disposeNativeStrikePtr:(J)V
2: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield sun.font.CStrike.nativeStrikePtr:J
3: return
end local 0 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 0: aload 0
getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
invokevirtual sun.font.CFont.getNumGlyphs:()I
ireturn
end local 0 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 0: aload 0
getfield sun.font.CStrike.strikeMetrics:Lsun/font/StrikeMetrics;
ifnonnull 6
1: aload 0
invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
invokestatic sun.font.CStrike.getFontMetrics:(J)Lsun/font/StrikeMetrics;
astore 1
start local 1 2: aload 0
getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
ifnull 4
3: aload 1
aload 0
getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
invokevirtual sun.font.StrikeMetrics.convertToUserSpace:(Ljava/awt/geom/AffineTransform;)V
4: StackMap locals: sun.font.StrikeMetrics
StackMap stack:
aload 1
aload 0
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: aload 0
aload 1
putfield sun.font.CStrike.strikeMetrics:Lsun/font/StrikeMetrics;
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.CStrike.strikeMetrics:Lsun/font/StrikeMetrics;
areturn
end local 0 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 start local 1 0: aload 0
iload 1
invokevirtual sun.font.CStrike.getCachedNativeGlyphAdvance:(I)F
freturn
end local 1 end local 0 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 start local 1 0: aload 0
aload 0
getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
invokevirtual sun.font.CFont.getMapper:()Lsun/font/CharToGlyphMapper;
iload 1
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(I)I
invokevirtual sun.font.CStrike.getGlyphAdvance:(I)F
freturn
end local 1 end local 0 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 start local 1 0: aload 0
aload 0
getfield sun.font.CStrike.nativeFont:Lsun/font/CFont;
invokevirtual sun.font.CFont.getMapper:()Lsun/font/CharToGlyphMapper;
iload 1
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(C)I
invokevirtual sun.font.CStrike.getGlyphMetrics:(I)Ljava/awt/geom/Point2D$Float;
areturn
end local 1 end local 0 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 start local 1 0: new java.awt.geom.Point2D$Float
dup
aload 0
iload 1
invokevirtual sun.font.CStrike.getGlyphAdvance:(I)F
fconst_0
invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
areturn
end local 1 end local 0 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 start local 1 0: aload 0
iload 1
fconst_0
fconst_0
invokevirtual sun.font.CStrike.getGlyphOutline:(IFF)Ljava/awt/geom/GeneralPath;
astore 2
start local 2 1: aload 2
invokevirtual java.awt.geom.GeneralPath.getBounds2D:()Ljava/awt/geom/Rectangle2D;
astore 3
start local 3 2: aload 3
instanceof java.awt.geom.Rectangle2D$Float
ifeq 5
3: aload 3
checkcast java.awt.geom.Rectangle2D$Float
astore 4
start local 4 4: goto 10
end local 4 5: StackMap locals: java.awt.geom.GeneralPath java.awt.geom.Rectangle2D
StackMap stack:
aload 3
invokevirtual java.awt.geom.Rectangle2D.getX:()D
d2f
fstore 5
start local 5 6: aload 3
invokevirtual java.awt.geom.Rectangle2D.getY:()D
d2f
fstore 6
start local 6 7: aload 3
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
d2f
fstore 7
start local 7 8: aload 3
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
d2f
fstore 8
start local 8 9: new java.awt.geom.Rectangle2D$Float
dup
fload 5
fload 6
fload 7
fload 8
invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
astore 4
end local 8 end local 7 end local 6 end local 5 start local 4 10: StackMap locals: java.awt.geom.Rectangle2D$Float
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: new java.awt.geom.Rectangle2D$Float
dup
invokespecial java.awt.geom.Rectangle2D$Float.<init>:()V
astore 4
start local 4 1: aload 0
getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
ifnull 3
2: aload 0
getfield sun.font.CStrike.invDevTx:Ljava/awt/geom/AffineTransform;
aload 2
aload 2
invokevirtual java.awt.geom.AffineTransform.transform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
3: StackMap locals: java.awt.geom.Rectangle2D$Float
StackMap stack:
aload 0
iload 1
aload 2
getfield java.awt.geom.Point2D$Float.x:F
aload 2
getfield java.awt.geom.Point2D$Float.y:F
aload 4
invokevirtual sun.font.CStrike.getGlyphImageBounds:(IFFLjava/awt/geom/Rectangle2D$Float;)V
4: aload 4
getfield java.awt.geom.Rectangle2D$Float.width:F
fconst_0
fcmpl
ifne 7
aload 4
getfield java.awt.geom.Rectangle2D$Float.height:F
fconst_0
fcmpl
ifne 7
5: aload 3
dconst_0
dconst_0
ldc -1.0
ldc -1.0
invokevirtual java.awt.Rectangle.setRect:(DDDD)V
6: return
7: StackMap locals:
StackMap stack:
aload 3
aload 4
getfield java.awt.geom.Rectangle2D$Float.x:F
aload 2
getfield java.awt.geom.Point2D$Float.x:F
fadd
f2d
aload 4
getfield java.awt.geom.Rectangle2D$Float.y:F
aload 2
getfield java.awt.geom.Point2D$Float.y:F
fadd
f2d
aload 4
getfield java.awt.geom.Rectangle2D$Float.width:F
f2d
aload 4
getfield java.awt.geom.Rectangle2D$Float.height:F
f2d
invokevirtual java.awt.Rectangle.setRect:(DDDD)V
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
iload 1
aload 4
fload 2
f2d
fload 3
f2d
invokestatic sun.font.CStrike.getNativeGlyphImageBounds:(JILjava/awt/geom/Rectangle2D$Float;DD)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
iload 1
fload 2
f2d
fload 3
f2d
invokestatic sun.font.CStrike.getNativeGlyphOutline:(JIDD)Ljava/awt/geom/GeneralPath;
areturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: new java.lang.Error
dup
ldc "not implemented yet"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
dup
astore 2
monitorenter
1: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 1
invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
lstore 3
start local 3 2: lload 3
lconst_0
lcmp
ifeq 4
lload 3
aload 2
monitorexit
3: lreturn
4: StackMap locals: sun.font.CStrike$GlyphInfoCache long
StackMap stack:
iconst_1
newarray 11
astore 5
start local 5 5: iconst_1
newarray 10
astore 6
start local 6 6: aload 6
iconst_0
iload 1
iastore
7: aload 0
aload 6
aload 5
iconst_1
invokevirtual sun.font.CStrike.getGlyphImagePtrs:([I[JI)V
8: aload 5
iconst_0
laload
lstore 3
9: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 1
lload 3
invokevirtual sun.font.CStrike$GlyphInfoCache.put:(IJ)V
10: lload 3
aload 2
monitorexit
11: lreturn
end local 6 end local 5 end local 3 12: StackMap locals: sun.font.CStrike int sun.font.CStrike$GlyphInfoCache
StackMap stack: java.lang.Throwable
aload 2
monitorexit
13: athrow
end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
dup
astore 4
monitorenter
1: iconst_0
istore 5
start local 5 2: iconst_0
istore 6
start local 6 3: goto 12
4: StackMap locals: sun.font.CStrike$GlyphInfoCache int int
StackMap stack:
aload 1
iload 6
iaload
istore 7
start local 7 5: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 7
invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
lstore 8
start local 8 6: lload 8
lconst_0
lcmp
ifeq 9
7: aload 2
iload 6
lload 8
lastore
8: goto 11
9: StackMap locals: int long
StackMap stack:
aload 2
iload 6
lconst_0
lastore
10: iinc 5 1
end local 8 end local 7 11: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
iload 3
if_icmplt 4
end local 6 13: iload 5
ifne 16
14: aload 4
monitorexit
15: return
16: StackMap locals:
StackMap stack:
iload 5
newarray 10
astore 6
start local 6 17: iload 5
newarray 10
astore 7
start local 7 18: iconst_0
istore 8
start local 8 19: iconst_0
istore 9
start local 9 20: iconst_0
istore 10
start local 10 21: goto 35
22: StackMap locals: sun.font.CStrike int[] long[] int sun.font.CStrike$GlyphInfoCache int int[] int[] int int int
StackMap stack:
aload 2
iload 10
laload
lconst_0
lcmp
ifeq 23
goto 34
23: StackMap locals:
StackMap stack:
aload 1
iload 10
iaload
istore 11
start local 11 24: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 11
invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
ldc -1
lcmp
ifne 29
25: aload 7
iload 8
iconst_m1
iastore
26: iinc 9 1
27: iinc 8 1
28: goto 34
29: StackMap locals: int
StackMap stack:
iload 8
iload 9
isub
istore 12
start local 12 30: aload 6
iload 12
iload 11
iastore
31: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 11
ldc -1
invokevirtual sun.font.CStrike$GlyphInfoCache.put:(IJ)V
32: aload 7
iload 8
iload 12
iastore
33: iinc 8 1
end local 12 end local 11 34: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
35: iload 10
iload 3
if_icmplt 22
end local 10 36: iload 8
iload 9
isub
istore 10
start local 10 37: iload 10
newarray 11
astore 11
start local 11 38: aload 0
aload 11
aload 6
iload 10
invokevirtual sun.font.CStrike.getFilteredGlyphImagePtrs:([J[II)V
39: iconst_0
istore 8
40: iconst_0
istore 12
start local 12 41: goto 54
42: StackMap locals: long[] int
StackMap stack:
aload 2
iload 12
laload
lconst_0
lcmp
ifeq 44
aload 2
iload 12
laload
ldc -1
lcmp
ifeq 44
43: goto 53
44: StackMap locals:
StackMap stack:
aload 7
iload 8
iaload
istore 13
start local 13 45: aload 1
iload 12
iaload
istore 14
start local 14 46: iload 13
i2l
ldc -1
lcmp
ifne 49
47: aload 2
iload 12
aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 14
invokevirtual sun.font.CStrike$GlyphInfoCache.get:(I)J
lastore
48: goto 52
49: StackMap locals: int int
StackMap stack:
aload 11
iload 13
laload
lstore 15
start local 15 50: aload 2
iload 12
lload 15
lastore
51: aload 0
getfield sun.font.CStrike.glyphInfoCache:Lsun/font/CStrike$GlyphInfoCache;
iload 14
lload 15
invokevirtual sun.font.CStrike$GlyphInfoCache.put:(IJ)V
end local 15 52: StackMap locals:
StackMap stack:
iinc 8 1
end local 14 end local 13 53: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
54: iload 12
iload 3
if_icmplt 42
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 55: 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: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
aload 1
aload 2
iload 3
invokestatic sun.font.CStrike.getGlyphImagePtrsNative:(J[J[II)V
1: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
dup
astore 2
monitorenter
1: aload 0
getfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
iload 1
invokevirtual sun.font.CStrike$GlyphAdvanceCache.get:(I)F
fstore 3
start local 3 2: fload 3
fconst_0
fcmpl
ifeq 5
3: fload 3
aload 2
monitorexit
4: freturn
5: StackMap locals: sun.font.CStrike$GlyphAdvanceCache float
StackMap stack:
aload 0
invokevirtual sun.font.CStrike.getNativeStrikePtr:()J
iload 1
invokestatic sun.font.CStrike.getNativeGlyphAdvance:(JI)F
fstore 3
6: aload 0
getfield sun.font.CStrike.glyphAdvanceCache:Lsun/font/CStrike$GlyphAdvanceCache;
iload 1
fload 3
invokevirtual sun.font.CStrike$GlyphAdvanceCache.put:(IF)V
7: fload 3
aload 2
monitorexit
8: freturn
end local 3 9: StackMap locals: sun.font.CStrike int sun.font.CStrike$GlyphAdvanceCache
StackMap stack: java.lang.Throwable
aload 2
monitorexit
10: athrow
end local 1 end local 0 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