public class sun.font.FileFontStrike extends sun.font.PhysicalStrike
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.font.FileFontStrike
super_class: sun.font.PhysicalStrike
{
static final int INVISIBLE_GLYPHS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65534
private sun.font.FileFont fileFont;
descriptor: Lsun/font/FileFont;
flags: (0x0002) ACC_PRIVATE
private static final int UNINITIALISED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int INTARRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int LONGARRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int SEGINTARRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int SEGLONGARRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private volatile int glyphCacheFormat;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final int SEGSHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int SEGSIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private boolean segmentedCache;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int[][] segIntGlyphImages;
descriptor: [[I
flags: (0x0002) ACC_PRIVATE
private long[][] segLongGlyphImages;
descriptor: [[J
flags: (0x0002) ACC_PRIVATE
private float[] horizontalAdvances;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private float[][] segHorizontalAdvances;
descriptor: [[F
flags: (0x0002) ACC_PRIVATE
java.util.concurrent.ConcurrentHashMap<java.lang.Integer, java.awt.geom.Rectangle2D$Float> boundsMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Ljava/awt/geom/Rectangle2D$Float;>;
java.lang.ref.SoftReference<java.util.concurrent.ConcurrentHashMap<java.lang.Integer, java.awt.geom.Point2D$Float>> glyphMetricsMapRef;
descriptor: Ljava/lang/ref/SoftReference;
flags: (0x0000)
Signature: Ljava/lang/ref/SoftReference<Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Ljava/awt/geom/Point2D$Float;>;>;
java.awt.geom.AffineTransform invertDevTx;
descriptor: Ljava/awt/geom/AffineTransform;
flags: (0x0000)
boolean useNatives;
descriptor: Z
flags: (0x0000)
sun.font.NativeStrike[] nativeStrikes;
descriptor: [Lsun/font/NativeStrike;
flags: (0x0000)
private int intPtSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static boolean isXPorLater;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.lang.ref.WeakReference<java.util.concurrent.ConcurrentHashMap<java.lang.Integer, java.awt.geom.GeneralPath>> outlineMapRef;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/WeakReference<Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Ljava/awt/geom/GeneralPath;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
putstatic sun.font.FileFontStrike.isXPorLater:Z
1: getstatic sun.font.FontUtilities.isWindows:Z
ifeq 4
getstatic sun.font.FontUtilities.useT2K:Z
ifne 4
2: invokestatic java.awt.GraphicsEnvironment.isHeadless:()Z
ifne 4
3: invokestatic sun.font.FileFontStrike.initNative:()Z
putstatic sun.font.FileFontStrike.isXPorLater:Z
4: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
private static native boolean initNative();
descriptor: ()Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
void <init>(sun.font.FileFont, sun.font.FontStrikeDesc);
descriptor: (Lsun/font/FileFont;Lsun/font/FontStrikeDesc;)V
flags: (0x0000)
Code:
stack=8, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial sun.font.PhysicalStrike.<init>:(Lsun/font/PhysicalFont;Lsun/font/FontStrikeDesc;)V
1: aload 0
iconst_0
putfield sun.font.FileFontStrike.glyphCacheFormat:I
2: aload 0
aload 1
putfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
3: aload 2
getfield sun.font.FontStrikeDesc.style:I
aload 1
getfield sun.font.FileFont.style:I
if_icmpeq 12
4: aload 2
getfield sun.font.FontStrikeDesc.style:I
iconst_2
iand
iconst_2
if_icmpne 8
5: aload 1
getfield sun.font.FileFont.style:I
iconst_2
iand
ifne 8
6: aload 0
iconst_1
putfield sun.font.FileFontStrike.algoStyle:Z
7: aload 0
ldc 0.7
putfield sun.font.FileFontStrike.italic:F
8: StackMap locals: sun.font.FileFontStrike sun.font.FileFont sun.font.FontStrikeDesc
StackMap stack:
aload 2
getfield sun.font.FontStrikeDesc.style:I
iconst_1
iand
iconst_1
if_icmpne 12
9: aload 1
getfield sun.font.FileFont.style:I
iconst_1
iand
ifne 12
10: aload 0
iconst_1
putfield sun.font.FileFontStrike.algoStyle:Z
11: aload 0
ldc 1.33
putfield sun.font.FileFontStrike.boldness:F
12: StackMap locals:
StackMap stack:
iconst_4
newarray 7
astore 3
start local 3 13: aload 2
getfield sun.font.FontStrikeDesc.glyphTx:Ljava/awt/geom/AffineTransform;
astore 4
start local 4 14: aload 4
aload 3
invokevirtual java.awt.geom.AffineTransform.getMatrix:([D)V
15: aload 2
getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
invokevirtual java.awt.geom.AffineTransform.isIdentity:()Z
ifne 20
16: aload 2
getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
invokevirtual java.awt.geom.AffineTransform.getType:()I
iconst_1
if_icmpeq 20
17: 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.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
18: goto 20
StackMap locals: sun.font.FileFontStrike sun.font.FileFont sun.font.FontStrikeDesc double[] java.awt.geom.AffineTransform
StackMap stack: java.awt.geom.NoninvertibleTransformException
19: pop
20: StackMap locals:
StackMap stack:
aload 2
getfield sun.font.FontStrikeDesc.aaHint:I
iconst_1
if_icmpeq 23
21: aload 1
getfield sun.font.FileFont.familyName:Ljava/lang/String;
ldc "Amble"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 23
22: iconst_1
goto 24
StackMap locals:
StackMap stack:
23: iconst_0
StackMap locals:
StackMap stack: int
24: istore 5
start local 5 25: aload 3
iconst_0
daload
invokestatic java.lang.Double.isNaN:(D)Z
ifne 28
aload 3
iconst_1
daload
invokestatic java.lang.Double.isNaN:(D)Z
ifne 28
26: aload 3
iconst_2
daload
invokestatic java.lang.Double.isNaN:(D)Z
ifne 28
aload 3
iconst_3
daload
invokestatic java.lang.Double.isNaN:(D)Z
ifne 28
27: aload 1
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
ifnonnull 30
28: StackMap locals: int
StackMap stack:
aload 0
invokestatic sun.font.NullFontScaler.getNullScalerContext:()J
putfield sun.font.FileFontStrike.pScalerContext:J
29: goto 34
30: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
aload 3
31: aload 2
getfield sun.font.FontStrikeDesc.aaHint:I
aload 2
getfield sun.font.FontStrikeDesc.fmHint:I
32: aload 0
getfield sun.font.FileFontStrike.boldness:F
aload 0
getfield sun.font.FileFontStrike.italic:F
iload 5
33: invokevirtual sun.font.FontScaler.createScalerContext:([DIIFFZ)J
putfield sun.font.FileFontStrike.pScalerContext:J
34: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.font.FileFont.getMapper:()Lsun/font/CharToGlyphMapper;
putfield sun.font.FileFontStrike.mapper:Lsun/font/CharToGlyphMapper;
35: aload 0
getfield sun.font.FileFontStrike.mapper:Lsun/font/CharToGlyphMapper;
invokevirtual sun.font.CharToGlyphMapper.getNumGlyphs:()I
istore 6
start local 6 36: aload 3
iconst_3
daload
d2f
fstore 7
start local 7 37: aload 0
fload 7
f2i
dup_x1
putfield sun.font.FileFontStrike.intPtSize:I
istore 8
start local 8 38: aload 4
invokevirtual java.awt.geom.AffineTransform.getType:()I
bipush 124
iand
ifne 39
iconst_1
goto 40
StackMap locals: int float int
StackMap stack:
39: iconst_0
StackMap locals:
StackMap stack: int
40: istore 9
start local 9 41: aload 0
42: iload 6
sipush 256
if_icmpgt 46
43: iload 6
bipush 64
if_icmple 45
44: iload 9
ifeq 46
fload 7
iload 8
i2f
fcmpl
ifne 46
iload 8
bipush 6
if_icmplt 46
iload 8
bipush 36
if_icmpgt 46
StackMap locals: sun.font.FileFontStrike sun.font.FileFont sun.font.FontStrikeDesc double[] java.awt.geom.AffineTransform int int float int int
StackMap stack: sun.font.FileFontStrike
45: iconst_0
goto 47
StackMap locals:
StackMap stack: sun.font.FileFontStrike
46: iconst_1
47: StackMap locals: sun.font.FileFontStrike sun.font.FileFont sun.font.FontStrikeDesc double[] java.awt.geom.AffineTransform int int float int int
StackMap stack: sun.font.FileFontStrike int
putfield sun.font.FileFontStrike.segmentedCache:Z
48: aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
lconst_0
lcmp
ifne 54
49: aload 0
new sun.font.FontStrikeDisposer
dup
aload 1
aload 2
invokespecial sun.font.FontStrikeDisposer.<init>:(Lsun/font/Font2D;Lsun/font/FontStrikeDesc;)V
putfield sun.font.FileFontStrike.disposer:Lsun/font/FontStrikeDisposer;
50: aload 0
invokevirtual sun.font.FileFontStrike.initGlyphCache:()V
51: aload 0
invokestatic sun.font.NullFontScaler.getNullScalerContext:()J
putfield sun.font.FileFontStrike.pScalerContext:J
52: invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
aload 1
invokevirtual sun.font.SunFontManager.deRegisterBadFont:(Lsun/font/Font2D;)V
53: return
54: StackMap locals:
StackMap stack:
getstatic sun.font.FontUtilities.isWindows:Z
ifeq 66
getstatic sun.font.FileFontStrike.isXPorLater:Z
ifeq 66
55: getstatic sun.font.FontUtilities.useT2K:Z
ifne 66
56: invokestatic java.awt.GraphicsEnvironment.isHeadless:()Z
ifne 66
57: aload 1
getfield sun.font.FileFont.useJavaRasterizer:Z
ifne 66
58: aload 2
getfield sun.font.FontStrikeDesc.aaHint:I
iconst_4
if_icmpeq 60
59: aload 2
getfield sun.font.FontStrikeDesc.aaHint:I
iconst_5
if_icmpne 66
60: StackMap locals:
StackMap stack:
aload 3
iconst_1
daload
dconst_0
dcmpl
ifne 66
aload 3
iconst_2
daload
dconst_0
dcmpl
ifne 66
61: aload 3
iconst_0
daload
aload 3
iconst_3
daload
dcmpl
ifne 66
62: aload 3
iconst_0
daload
ldc 3.0
dcmpl
iflt 66
aload 3
iconst_0
daload
ldc 100.0
dcmpg
ifgt 66
63: aload 1
checkcast sun.font.TrueTypeFont
aload 0
getfield sun.font.FileFontStrike.intPtSize:I
invokevirtual sun.font.TrueTypeFont.useEmbeddedBitmapsForSize:(I)Z
ifne 66
64: aload 0
iconst_1
putfield sun.font.FileFontStrike.useNatives:Z
65: goto 80
66: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.font.FileFont.checkUseNatives:()Z
ifeq 80
aload 2
getfield sun.font.FontStrikeDesc.aaHint:I
ifne 80
aload 0
getfield sun.font.FileFontStrike.algoStyle:Z
ifne 80
67: aload 3
iconst_1
daload
dconst_0
dcmpl
ifne 80
aload 3
iconst_2
daload
dconst_0
dcmpl
ifne 80
68: aload 3
iconst_0
daload
ldc 6.0
dcmpl
iflt 80
aload 3
iconst_0
daload
ldc 36.0
dcmpg
ifgt 80
69: aload 3
iconst_0
daload
aload 3
iconst_3
daload
dcmpl
ifne 80
70: aload 0
iconst_1
putfield sun.font.FileFontStrike.useNatives:Z
71: aload 1
getfield sun.font.FileFont.nativeFonts:[Lsun/font/NativeFont;
arraylength
istore 10
start local 10 72: aload 0
iload 10
anewarray sun.font.NativeStrike
putfield sun.font.FileFontStrike.nativeStrikes:[Lsun/font/NativeStrike;
73: iconst_0
istore 11
start local 11 74: goto 79
75: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.nativeStrikes:[Lsun/font/NativeStrike;
iload 11
76: new sun.font.NativeStrike
dup
aload 1
getfield sun.font.FileFont.nativeFonts:[Lsun/font/NativeFont;
iload 11
aaload
aload 2
iconst_0
invokespecial sun.font.NativeStrike.<init>:(Lsun/font/NativeFont;Lsun/font/FontStrikeDesc;Z)V
77: aastore
78: iinc 11 1
StackMap locals:
StackMap stack:
79: iload 11
iload 10
if_icmplt 75
end local 11 end local 10 80: StackMap locals:
StackMap stack:
invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 92
getstatic sun.font.FontUtilities.isWindows:Z
ifeq 92
81: invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
82: new java.lang.StringBuilder
dup
ldc "Strike for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " at size = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.font.FileFontStrike.intPtSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
83: ldc " use natives = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.font.FileFontStrike.useNatives:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
84: ldc " useJavaRasteriser = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield sun.font.FileFont.useJavaRasterizer:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
85: ldc " AAHint = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
getfield sun.font.FontStrikeDesc.aaHint:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
86: ldc " Has Embedded bitmaps = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
87: aload 1
checkcast sun.font.TrueTypeFont
88: aload 0
getfield sun.font.FileFontStrike.intPtSize:I
invokevirtual sun.font.TrueTypeFont.useEmbeddedBitmapsForSize:(I)Z
89: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
90: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
91: invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;)V
92: StackMap locals:
StackMap stack:
aload 0
new sun.font.FontStrikeDisposer
dup
aload 1
aload 2
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
invokespecial sun.font.FontStrikeDisposer.<init>:(Lsun/font/Font2D;Lsun/font/FontStrikeDesc;J)V
putfield sun.font.FileFontStrike.disposer:Lsun/font/FontStrikeDisposer;
93: ldc 48.0
dstore 10
start local 10 94: aload 0
95: aload 4
invokevirtual java.awt.geom.AffineTransform.getScaleX:()D
invokestatic java.lang.Math.abs:(D)D
dload 10
dcmpg
ifgt 99
96: aload 4
invokevirtual java.awt.geom.AffineTransform.getScaleY:()D
invokestatic java.lang.Math.abs:(D)D
dload 10
dcmpg
ifgt 99
97: aload 4
invokevirtual java.awt.geom.AffineTransform.getShearX:()D
invokestatic java.lang.Math.abs:(D)D
dload 10
dcmpg
ifgt 99
98: aload 4
invokevirtual java.awt.geom.AffineTransform.getShearY:()D
invokestatic java.lang.Math.abs:(D)D
dload 10
dcmpg
ifgt 99
iconst_1
goto 100
StackMap locals: sun.font.FileFontStrike sun.font.FileFont sun.font.FontStrikeDesc double[] java.awt.geom.AffineTransform int int float int int double
StackMap stack: sun.font.FileFontStrike
99: iconst_0
100: StackMap locals: sun.font.FileFontStrike sun.font.FileFont sun.font.FontStrikeDesc double[] java.awt.geom.AffineTransform int int float int int double
StackMap stack: sun.font.FileFontStrike int
putfield sun.font.FileFontStrike.getImageWithAdvance:Z
101: aload 0
getfield sun.font.FileFontStrike.getImageWithAdvance:Z
ifne 112
102: aload 0
getfield sun.font.FileFontStrike.segmentedCache:Z
ifne 110
103: aload 0
iload 6
newarray 6
putfield sun.font.FileFontStrike.horizontalAdvances:[F
104: iconst_0
istore 12
start local 12 105: goto 108
106: StackMap locals: int
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.horizontalAdvances:[F
iload 12
ldc 3.4028235E38
fastore
107: iinc 12 1
StackMap locals:
StackMap stack:
108: iload 12
iload 6
if_icmplt 106
end local 12 109: goto 112
110: StackMap locals:
StackMap stack:
iload 6
bipush 32
iadd
iconst_1
isub
bipush 32
idiv
istore 12
start local 12 111: aload 0
iload 12
anewarray float[]
putfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
end local 12 112: StackMap locals:
StackMap stack:
return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 113 0 this Lsun/font/FileFontStrike;
0 113 1 fileFont Lsun/font/FileFont;
0 113 2 desc Lsun/font/FontStrikeDesc;
13 113 3 matrix [D
14 113 4 at Ljava/awt/geom/AffineTransform;
25 113 5 disableHinting Z
36 113 6 numGlyphs I
37 113 7 ptSize F
38 113 8 iSize I
41 113 9 isSimpleTx Z
72 80 10 numNatives I
74 80 11 i I
94 113 10 maxSz D
105 109 12 i I
111 112 12 numSegments I
Exception table:
from to target type
17 18 19 Class java.awt.geom.NoninvertibleTransformException
MethodParameters:
Name Flags
fileFont
desc
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.FileFontStrike.fileFont:Lsun/font/FileFont;
invokevirtual sun.font.FileFont.getNumGlyphs:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFontStrike;
long getGlyphImageFromNative(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.font.FontUtilities.isWindows:Z
ifeq 2
1: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getGlyphImageFromWindows:(I)J
lreturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getGlyphImageFromX11:(I)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/FileFontStrike;
0 3 1 glyphCode I
MethodParameters:
Name Flags
glyphCode
private native long _getGlyphImageFromWindows(java.lang.String, int, int, int, boolean);
descriptor: (Ljava/lang/String;IIIZ)J
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
family
style
size
glyphCode
fracMetrics
long getGlyphImageFromWindows(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aconst_null
invokevirtual sun.font.FileFont.getFamilyName:(Ljava/util/Locale;)Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.style:I
iconst_1
iand
aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.style:I
iconst_2
iand
ior
2: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
invokevirtual sun.font.FileFont.getStyle:()I
3: ior
istore 3
start local 3 4: aload 0
getfield sun.font.FileFontStrike.intPtSize:I
istore 4
start local 4 5: aload 0
6: aload 2
iload 3
iload 4
iload 1
7: aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.fmHint:I
iconst_2
if_icmpne 8
iconst_1
goto 9
StackMap locals: sun.font.FileFontStrike int java.lang.String int int
StackMap stack: sun.font.FileFontStrike java.lang.String int int int
8: iconst_0
9: StackMap locals: sun.font.FileFontStrike int java.lang.String int int
StackMap stack: sun.font.FileFontStrike java.lang.String int int int int
invokevirtual sun.font.FileFontStrike._getGlyphImageFromWindows:(Ljava/lang/String;IIIZ)J
lstore 5
start local 5 10: lload 5
lconst_0
lcmp
ifeq 16
11: aload 0
iload 1
iconst_0
invokevirtual sun.font.FileFontStrike.getGlyphAdvance:(IZ)F
fstore 7
start local 7 12: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 5
getstatic sun.font.StrikeCache.xAdvanceOffset:I
i2l
ladd
13: fload 7
14: invokevirtual jdk.internal.misc.Unsafe.putFloat:(JF)V
15: lload 5
lreturn
end local 7 16: StackMap locals: long
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
invokevirtual sun.font.FileFont.getGlyphImage:(JI)J
lreturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/font/FileFontStrike;
0 17 1 glyphCode I
1 17 2 family Ljava/lang/String;
4 17 3 style I
5 17 4 size I
10 17 5 ptr J
12 16 7 advance F
MethodParameters:
Name Flags
glyphCode
long getGlyphImageFromX11(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
getfield sun.font.FileFont.glyphToCharMap:[C
iload 1
caload
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 10
3: StackMap locals: sun.font.FileFontStrike int top top int int
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
getfield sun.font.FileFont.nativeFonts:[Lsun/font/NativeFont;
iload 5
aaload
invokevirtual sun.font.NativeFont.getMapper:()Lsun/font/CharToGlyphMapper;
astore 6
start local 6 4: aload 6
iload 4
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(C)I
ldc 65535
iand
istore 7
start local 7 5: iload 7
aload 6
invokevirtual sun.font.CharToGlyphMapper.getMissingGlyphCode:()I
if_icmpeq 9
6: aload 0
getfield sun.font.FileFontStrike.nativeStrikes:[Lsun/font/NativeStrike;
iload 5
aaload
iload 7
invokevirtual sun.font.NativeStrike.getGlyphImagePtrNoCache:(I)J
lstore 2
start local 2 7: lload 2
lconst_0
lcmp
ifeq 9
8: lload 2
lreturn
end local 7 end local 6 end local 2 9: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield sun.font.FileFontStrike.nativeStrikes:[Lsun/font/NativeStrike;
arraylength
if_icmplt 3
end local 5 11: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
invokevirtual sun.font.FileFont.getGlyphImage:(JI)J
lreturn
end local 4 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/font/FileFontStrike;
0 12 1 glyphCode I
7 9 2 glyphPtr J
1 12 4 charCode C
2 11 5 i I
4 9 6 mapper Lsun/font/CharToGlyphMapper;
5 9 7 gc I
MethodParameters:
Name Flags
glyphCode
long getGlyphImagePtr(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ldc 65534
if_icmplt 2
1: getstatic sun.font.StrikeCache.invisibleGlyphPtr:J
lreturn
2: StackMap locals:
StackMap stack:
lconst_0
lstore 2
start local 2 3: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getCachedGlyphPtr:(I)J
dup2
lstore 2
lconst_0
lcmp
ifeq 5
4: lload 2
lreturn
5: StackMap locals: long
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.useNatives:Z
ifeq 14
6: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getGlyphImageFromNative:(I)J
lstore 2
7: lload 2
lconst_0
lcmp
ifne 14
invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 14
8: invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
9: new java.lang.StringBuilder
dup
ldc "Strike for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
10: ldc " at size = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.font.FileFontStrike.intPtSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: ldc " couldn't get native glyph for code = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifne 18
15: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
16: iload 1
17: invokevirtual sun.font.FileFont.getGlyphImage:(JI)J
lstore 2
18: StackMap locals:
StackMap stack:
aload 0
iload 1
lload 2
invokevirtual sun.font.FileFontStrike.setCachedGlyphPtr:(IJ)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/font/FileFontStrike;
0 19 1 glyphCode I
3 19 2 glyphPtr J
MethodParameters:
Name Flags
glyphCode
void getGlyphImagePtrs(int[], long[], int);
descriptor: ([I[JI)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 17
2: StackMap locals: int
StackMap stack:
aload 1
iload 4
iaload
istore 5
start local 5 3: iload 5
ldc 65534
if_icmplt 6
4: aload 2
iload 4
getstatic sun.font.StrikeCache.invisibleGlyphPtr:J
lastore
5: goto 16
6: StackMap locals: int
StackMap stack:
aload 2
iload 4
aload 0
iload 5
invokevirtual sun.font.FileFontStrike.getCachedGlyphPtr:(I)J
dup2_x2
lastore
lconst_0
lcmp
ifeq 8
7: goto 16
8: StackMap locals:
StackMap stack:
lconst_0
lstore 6
start local 6 9: aload 0
getfield sun.font.FileFontStrike.useNatives:Z
ifeq 11
10: aload 0
iload 5
invokevirtual sun.font.FileFontStrike.getGlyphImageFromNative:(I)J
lstore 6
11: StackMap locals: long
StackMap stack:
lload 6
lconst_0
lcmp
ifne 15
12: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
13: iload 5
14: invokevirtual sun.font.FileFont.getGlyphImage:(JI)J
lstore 6
15: StackMap locals:
StackMap stack:
aload 2
iload 4
aload 0
iload 5
lload 6
invokevirtual sun.font.FileFontStrike.setCachedGlyphPtr:(IJ)J
lastore
end local 6 end local 5 16: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
iload 3
if_icmplt 2
end local 4 18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/font/FileFontStrike;
0 19 1 glyphCodes [I
0 19 2 images [J
0 19 3 len I
1 18 4 i I
3 16 5 glyphCode I
9 16 6 glyphPtr J
MethodParameters:
Name Flags
glyphCodes
images
len
int getSlot0GlyphImagePtrs(int[], long[], int);
descriptor: ([I[JI)I
flags: (0x0000)
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 21
3: StackMap locals: int int
StackMap stack:
aload 1
iload 5
iaload
istore 6
start local 6 4: iload 6
bipush 24
iushr
ifeq 6
5: iload 4
ireturn
6: StackMap locals: int
StackMap stack:
iinc 4 1
7: iload 6
ldc 65534
if_icmplt 10
8: aload 2
iload 5
getstatic sun.font.StrikeCache.invisibleGlyphPtr:J
lastore
9: goto 20
10: StackMap locals:
StackMap stack:
aload 2
iload 5
aload 0
iload 6
invokevirtual sun.font.FileFontStrike.getCachedGlyphPtr:(I)J
dup2_x2
lastore
lconst_0
lcmp
ifeq 12
11: goto 20
12: StackMap locals:
StackMap stack:
lconst_0
lstore 7
start local 7 13: aload 0
getfield sun.font.FileFontStrike.useNatives:Z
ifeq 15
14: aload 0
iload 6
invokevirtual sun.font.FileFontStrike.getGlyphImageFromNative:(I)J
lstore 7
15: StackMap locals: long
StackMap stack:
lload 7
lconst_0
lcmp
ifne 19
16: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
17: iload 6
18: invokevirtual sun.font.FileFont.getGlyphImage:(JI)J
lstore 7
19: StackMap locals:
StackMap stack:
aload 2
iload 5
aload 0
iload 6
lload 7
invokevirtual sun.font.FileFontStrike.setCachedGlyphPtr:(IJ)J
lastore
end local 7 end local 6 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
iload 3
if_icmplt 3
end local 5 22: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/font/FileFontStrike;
0 23 1 glyphCodes [I
0 23 2 images [J
0 23 3 len I
1 23 4 convertedCnt I
2 22 5 i I
4 20 6 glyphCode I
13 20 7 glyphPtr J
MethodParameters:
Name Flags
glyphCodes
images
len
long getCachedGlyphPtr(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getCachedGlyphPtrInternal:(I)J
1: lreturn
2: StackMap locals:
StackMap stack: java.lang.Exception
pop
3: invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
checkcast sun.font.NullFontScaler
4: astore 2
start local 2 5: invokestatic sun.font.NullFontScaler.getNullScalerContext:()J
lstore 3
start local 3 6: aload 2
lload 3
iload 1
invokevirtual sun.font.NullFontScaler.getGlyphImage:(JI)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/font/FileFontStrike;
0 7 1 glyphCode I
5 7 2 nullScaler Lsun/font/NullFontScaler;
6 7 3 nullSC J
Exception table:
from to target type
0 1 2 Class java.lang.Exception
MethodParameters:
Name Flags
glyphCode
private long getCachedGlyphPtrInternal(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFontStrike.glyphCacheFormat:I
tableswitch { // 1 - 4
1: 1
2: 7
3: 2
4: 8
default: 13
}
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.intGlyphImages:[I
iload 1
iaload
i2l
ldc 4294967295
land
lreturn
2: StackMap locals:
StackMap stack:
iload 1
iconst_5
ishr
istore 2
start local 2 3: aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 2
aaload
ifnull 6
4: iload 1
bipush 32
irem
istore 3
start local 3 5: aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 2
aaload
iload 3
iaload
i2l
ldc 4294967295
land
lreturn
end local 3 6: StackMap locals: int
StackMap stack:
lconst_0
lreturn
end local 2 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.longGlyphImages:[J
iload 1
laload
lreturn
8: StackMap locals:
StackMap stack:
iload 1
iconst_5
ishr
istore 2
start local 2 9: aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 2
aaload
ifnull 12
10: iload 1
bipush 32
irem
istore 3
start local 3 11: aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 2
aaload
iload 3
laload
lreturn
end local 3 12: StackMap locals: int
StackMap stack:
lconst_0
lreturn
end local 2 13: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/font/FileFontStrike;
0 14 1 glyphCode I
3 7 2 segIndex I
9 13 2 segIndex I
5 6 3 subIndex I
11 12 3 subIndex I
MethodParameters:
Name Flags
glyphCode
private synchronized long setCachedGlyphPtr(int, long);
descriptor: (IJ)J
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
lload 2
invokevirtual sun.font.FileFontStrike.setCachedGlyphPtrInternal:(IJ)J
1: lreturn
2: StackMap locals:
StackMap stack: java.lang.Exception
pop
3: aload 0
getfield sun.font.FileFontStrike.glyphCacheFormat:I
tableswitch { // 1 - 4
1: 4
2: 6
3: 4
4: 6
default: 7
}
4: StackMap locals:
StackMap stack:
lload 2
l2i
invokestatic sun.font.StrikeCache.freeIntPointer:(I)V
5: goto 7
6: StackMap locals:
StackMap stack:
lload 2
invokestatic sun.font.StrikeCache.freeLongPointer:(J)V
7: StackMap locals:
StackMap stack:
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
checkcast sun.font.NullFontScaler
8: astore 4
start local 4 9: invokestatic sun.font.NullFontScaler.getNullScalerContext:()J
lstore 5
start local 5 10: aload 4
lload 5
iload 1
invokevirtual sun.font.NullFontScaler.getGlyphImage:(JI)J
lreturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/font/FileFontStrike;
0 11 1 glyphCode I
0 11 2 glyphPtr J
9 11 4 nullScaler Lsun/font/NullFontScaler;
10 11 5 nullSC J
Exception table:
from to target type
0 1 2 Class java.lang.Exception
MethodParameters:
Name Flags
glyphCode
glyphPtr
private long setCachedGlyphPtrInternal(int, long);
descriptor: (IJ)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.font.FileFontStrike.glyphCacheFormat:I
tableswitch { // 1 - 4
1: 1
2: 15
3: 6
4: 20
default: 29
}
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.intGlyphImages:[I
iload 1
iaload
ifne 4
2: aload 0
getfield sun.font.FileFontStrike.intGlyphImages:[I
iload 1
lload 2
l2i
iastore
3: lload 2
lreturn
4: StackMap locals:
StackMap stack:
lload 2
l2i
invokestatic sun.font.StrikeCache.freeIntPointer:(I)V
5: aload 0
getfield sun.font.FileFontStrike.intGlyphImages:[I
iload 1
iaload
i2l
ldc 4294967295
land
lreturn
6: StackMap locals:
StackMap stack:
iload 1
iconst_5
ishr
istore 4
start local 4 7: iload 1
bipush 32
irem
istore 5
start local 5 8: aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 4
aaload
ifnonnull 10
9: aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 4
bipush 32
newarray 10
aastore
10: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 4
aaload
iload 5
iaload
ifne 13
11: aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 4
aaload
iload 5
lload 2
l2i
iastore
12: lload 2
lreturn
13: StackMap locals:
StackMap stack:
lload 2
l2i
invokestatic sun.font.StrikeCache.freeIntPointer:(I)V
14: aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
iload 4
aaload
iload 5
iaload
i2l
ldc 4294967295
land
lreturn
end local 5 end local 4 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.longGlyphImages:[J
iload 1
laload
lconst_0
lcmp
ifne 18
16: aload 0
getfield sun.font.FileFontStrike.longGlyphImages:[J
iload 1
lload 2
lastore
17: lload 2
lreturn
18: StackMap locals:
StackMap stack:
lload 2
invokestatic sun.font.StrikeCache.freeLongPointer:(J)V
19: aload 0
getfield sun.font.FileFontStrike.longGlyphImages:[J
iload 1
laload
lreturn
20: StackMap locals:
StackMap stack:
iload 1
iconst_5
ishr
istore 4
start local 4 21: iload 1
bipush 32
irem
istore 5
start local 5 22: aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 4
aaload
ifnonnull 24
23: aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 4
bipush 32
newarray 11
aastore
24: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 4
aaload
iload 5
laload
lconst_0
lcmp
ifne 27
25: aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 4
aaload
iload 5
lload 2
lastore
26: lload 2
lreturn
27: StackMap locals:
StackMap stack:
lload 2
invokestatic sun.font.StrikeCache.freeLongPointer:(J)V
28: aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
iload 4
aaload
iload 5
laload
lreturn
end local 5 end local 4 29: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.font.FileFontStrike.initGlyphCache:()V
30: aload 0
iload 1
lload 2
invokevirtual sun.font.FileFontStrike.setCachedGlyphPtr:(IJ)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/font/FileFontStrike;
0 31 1 glyphCode I
0 31 2 glyphPtr J
7 15 4 segIndex I
21 29 4 segIndex I
8 15 5 subIndex I
22 29 5 subIndex I
MethodParameters:
Name Flags
glyphCode
glyphPtr
private synchronized void initGlyphCache();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.font.FileFontStrike.mapper:Lsun/font/CharToGlyphMapper;
invokevirtual sun.font.CharToGlyphMapper.getNumGlyphs:()I
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
getfield sun.font.FileFontStrike.segmentedCache:Z
ifeq 13
3: iload 1
bipush 32
iadd
iconst_1
isub
bipush 32
idiv
istore 3
start local 3 4: getstatic sun.font.FileFontStrike.longAddresses:Z
ifeq 9
5: iconst_4
istore 2
6: aload 0
iload 3
anewarray long[]
putfield sun.font.FileFontStrike.segLongGlyphImages:[[J
7: aload 0
getfield sun.font.FileFontStrike.disposer:Lsun/font/FontStrikeDisposer;
aload 0
getfield sun.font.FileFontStrike.segLongGlyphImages:[[J
putfield sun.font.FontStrikeDisposer.segLongGlyphImages:[[J
8: goto 21
9: StackMap locals: int int int
StackMap stack:
iconst_3
istore 2
10: aload 0
iload 3
anewarray int[]
putfield sun.font.FileFontStrike.segIntGlyphImages:[[I
11: aload 0
getfield sun.font.FileFontStrike.disposer:Lsun/font/FontStrikeDisposer;
aload 0
getfield sun.font.FileFontStrike.segIntGlyphImages:[[I
putfield sun.font.FontStrikeDisposer.segIntGlyphImages:[[I
end local 3 12: goto 21
13: StackMap locals:
StackMap stack:
getstatic sun.font.FileFontStrike.longAddresses:Z
ifeq 18
14: iconst_2
istore 2
15: aload 0
iload 1
newarray 11
putfield sun.font.FileFontStrike.longGlyphImages:[J
16: aload 0
getfield sun.font.FileFontStrike.disposer:Lsun/font/FontStrikeDisposer;
aload 0
getfield sun.font.FileFontStrike.longGlyphImages:[J
putfield sun.font.FontStrikeDisposer.longGlyphImages:[J
17: goto 21
18: StackMap locals:
StackMap stack:
iconst_1
istore 2
19: aload 0
iload 1
newarray 10
putfield sun.font.FileFontStrike.intGlyphImages:[I
20: aload 0
getfield sun.font.FileFontStrike.disposer:Lsun/font/FontStrikeDisposer;
aload 0
getfield sun.font.FileFontStrike.intGlyphImages:[I
putfield sun.font.FontStrikeDisposer.intGlyphImages:[I
21: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield sun.font.FileFontStrike.glyphCacheFormat:I
22: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/font/FileFontStrike;
1 23 1 numGlyphs I
2 23 2 tmpFormat I
4 12 3 numSegments I
float getGlyphAdvance(int);
descriptor: (I)F
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
invokevirtual sun.font.FileFontStrike.getGlyphAdvance:(IZ)F
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFontStrike;
0 1 1 glyphCode I
MethodParameters:
Name Flags
glyphCode
private float getGlyphAdvance(int, boolean);
descriptor: (IZ)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ldc 65534
if_icmplt 2
1: fconst_0
freturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.horizontalAdvances:[F
ifnull 10
3: aload 0
getfield sun.font.FileFontStrike.horizontalAdvances:[F
iload 1
faload
fstore 3
start local 3 4: fload 3
ldc 3.4028235E38
fcmpl
ifeq 21
5: iload 2
ifne 9
aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 9
6: new java.awt.geom.Point2D$Float
dup
fload 3
fconst_0
invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
astore 4
start local 4 7: aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
aload 4
aload 4
invokevirtual java.awt.geom.AffineTransform.deltaTransform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
8: aload 4
getfield java.awt.geom.Point2D$Float.x:F
freturn
end local 4 9: StackMap locals: float
StackMap stack:
fload 3
freturn
end local 3 10: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.segmentedCache:Z
ifeq 21
aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
ifnull 21
11: iload 1
iconst_5
ishr
istore 4
start local 4 12: aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
iload 4
aaload
astore 5
start local 5 13: aload 5
ifnull 21
14: aload 5
iload 1
bipush 32
irem
faload
fstore 3
start local 3 15: fload 3
ldc 3.4028235E38
fcmpl
ifeq 21
16: iload 2
ifne 20
aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 20
17: new java.awt.geom.Point2D$Float
dup
fload 3
fconst_0
invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
astore 6
start local 6 18: aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.devTx:Ljava/awt/geom/AffineTransform;
aload 6
aload 6
invokevirtual java.awt.geom.AffineTransform.deltaTransform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
19: aload 6
getfield java.awt.geom.Point2D$Float.x:F
freturn
end local 6 20: StackMap locals: float int float[]
StackMap stack:
fload 3
freturn
end local 5 end local 4 end local 3 21: StackMap locals:
StackMap stack:
iload 2
ifne 25
aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 25
22: new java.awt.geom.Point2D$Float
dup
invokespecial java.awt.geom.Point2D$Float.<init>:()V
astore 4
start local 4 23: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
aload 4
invokevirtual sun.font.FileFont.getGlyphMetrics:(JILjava/awt/geom/Point2D$Float;)V
24: aload 4
getfield java.awt.geom.Point2D$Float.x:F
freturn
end local 4 25: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnonnull 26
iload 2
ifne 28
26: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual sun.font.FileFontStrike.getGlyphMetrics:(IZ)Ljava/awt/geom/Point2D$Float;
getfield java.awt.geom.Point2D$Float.x:F
fstore 3
start local 3 27: goto 38
end local 3 28: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.getImageWithAdvance:Z
ifeq 31
29: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getGlyphImagePtr:(I)J
lstore 4
start local 4 30: goto 32
end local 4 31: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getCachedGlyphPtr:(I)J
lstore 4
start local 4 32: StackMap locals: sun.font.FileFontStrike int int top long
StackMap stack:
lload 4
lconst_0
lcmp
ifeq 37
33: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
34: lload 4
getstatic sun.font.StrikeCache.xAdvanceOffset:I
i2l
ladd
35: invokevirtual jdk.internal.misc.Unsafe.getFloat:(J)F
fstore 3
start local 3 36: goto 38
end local 3 37: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
invokevirtual sun.font.FileFont.getGlyphAdvance:(JI)F
fstore 3
end local 4 start local 3 38: StackMap locals: sun.font.FileFontStrike int int float
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.horizontalAdvances:[F
ifnull 41
39: aload 0
getfield sun.font.FileFontStrike.horizontalAdvances:[F
iload 1
fload 3
fastore
40: goto 52
StackMap locals:
StackMap stack:
41: aload 0
getfield sun.font.FileFontStrike.segmentedCache:Z
ifeq 52
aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
ifnull 52
42: iload 1
iconst_5
ishr
istore 4
start local 4 43: iload 1
bipush 32
irem
istore 5
start local 5 44: aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
iload 4
aaload
ifnonnull 51
45: aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
iload 4
bipush 32
newarray 6
aastore
46: iconst_0
istore 6
start local 6 47: goto 50
48: StackMap locals: int int int
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
iload 4
aaload
iload 6
ldc 3.4028235E38
fastore
49: iinc 6 1
StackMap locals:
StackMap stack:
50: iload 6
bipush 32
if_icmplt 48
end local 6 51: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.segHorizontalAdvances:[[F
iload 4
aaload
iload 5
fload 3
fastore
end local 5 end local 4 52: StackMap locals:
StackMap stack:
fload 3
freturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lsun/font/FileFontStrike;
0 53 1 glyphCode I
0 53 2 getUserAdv Z
4 10 3 advance F
15 21 3 advance F
27 28 3 advance F
36 37 3 advance F
38 53 3 advance F
7 9 4 metrics Ljava/awt/geom/Point2D$Float;
12 21 4 segIndex I
13 21 5 subArray [F
18 20 6 metrics Ljava/awt/geom/Point2D$Float;
23 25 4 metrics Ljava/awt/geom/Point2D$Float;
30 31 4 glyphPtr J
32 38 4 glyphPtr J
43 52 4 segIndex I
44 52 5 subIndex I
47 51 6 i I
MethodParameters:
Name Flags
glyphCode
getUserAdv
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.FileFontStrike.mapper:Lsun/font/CharToGlyphMapper;
iload 1
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(I)I
invokevirtual sun.font.FileFontStrike.getGlyphAdvance:(I)F
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFontStrike;
0 1 1 cp I
MethodParameters:
Name Flags
cp
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=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getGlyphImagePtr:(I)J
lstore 4
start local 4 1: lload 4
lconst_0
lcmp
ifne 6
2: aload 3
aload 2
getfield java.awt.geom.Point2D$Float.x:F
ldc 0.5
fadd
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
putfield java.awt.Rectangle.x:I
3: aload 3
aload 2
getfield java.awt.geom.Point2D$Float.y:F
ldc 0.5
fadd
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
putfield java.awt.Rectangle.y:I
4: aload 3
aload 3
iconst_0
dup_x1
putfield java.awt.Rectangle.height:I
putfield java.awt.Rectangle.width:I
5: return
6: StackMap locals: long
StackMap stack:
getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 4
getstatic sun.font.StrikeCache.topLeftXOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getFloat:(J)F
fstore 6
start local 6 7: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 4
getstatic sun.font.StrikeCache.topLeftYOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getFloat:(J)F
fstore 7
start local 7 8: aload 3
aload 2
getfield java.awt.geom.Point2D$Float.x:F
fload 6
fadd
ldc 0.5
fadd
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
putfield java.awt.Rectangle.x:I
9: aload 3
aload 2
getfield java.awt.geom.Point2D$Float.y:F
fload 7
fadd
ldc 0.5
fadd
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
putfield java.awt.Rectangle.y:I
10: aload 3
11: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 4
getstatic sun.font.StrikeCache.widthOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getShort:(J)S
ldc 65535
iand
12: putfield java.awt.Rectangle.width:I
13: aload 3
14: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 4
getstatic sun.font.StrikeCache.heightOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getShort:(J)S
ldc 65535
iand
15: putfield java.awt.Rectangle.height:I
16: aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.aaHint:I
iconst_4
if_icmpeq 18
17: aload 0
getfield sun.font.FileFontStrike.desc:Lsun/font/FontStrikeDesc;
getfield sun.font.FontStrikeDesc.aaHint:I
iconst_5
if_icmpne 23
18: StackMap locals: float float
StackMap stack:
fload 6
ldc -2.0
fcmpg
ifgt 23
19: aload 0
lload 4
aload 3
getfield java.awt.Rectangle.x:I
invokevirtual sun.font.FileFontStrike.getGlyphImageMinX:(JI)I
istore 8
start local 8 20: iload 8
aload 3
getfield java.awt.Rectangle.x:I
if_icmple 23
21: aload 3
dup
getfield java.awt.Rectangle.x:I
iconst_1
iadd
putfield java.awt.Rectangle.x:I
22: aload 3
dup
getfield java.awt.Rectangle.width:I
iconst_1
isub
putfield java.awt.Rectangle.width:I
end local 8 23: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/font/FileFontStrike;
0 24 1 glyphCode I
0 24 2 pt Ljava/awt/geom/Point2D$Float;
0 24 3 result Ljava/awt/Rectangle;
1 24 4 ptr J
7 24 6 topLeftX F
8 24 7 topLeftY F
20 23 8 minx I
MethodParameters:
Name Flags
glyphCode
pt
result
private int getGlyphImageMinX(long, int);
descriptor: (JI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 3 0: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.font.StrikeCache.widthOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getChar:(J)C
istore 4
start local 4 1: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.font.StrikeCache.heightOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getChar:(J)C
istore 5
start local 5 2: getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.font.StrikeCache.rowBytesOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getChar:(J)C
3: istore 6
start local 6 4: iload 6
iload 4
if_icmpne 6
5: iload 3
ireturn
6: StackMap locals: int int int
StackMap stack:
getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.font.StrikeCache.pixelDataOffset:I
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getAddress:(J)J
7: lstore 7
start local 7 8: lload 7
lconst_0
lcmp
ifne 10
9: iload 3
ireturn
10: StackMap locals: long
StackMap stack:
iconst_0
istore 9
start local 9 11: goto 19
12: StackMap locals: int
StackMap stack:
iconst_0
istore 10
start local 10 13: goto 17
14: StackMap locals: int
StackMap stack:
getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
lload 7
iload 9
iload 6
imul
i2l
ladd
iload 10
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
ifeq 16
15: iload 3
ireturn
16: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
17: iload 10
iconst_3
if_icmplt 14
end local 10 18: iinc 9 1
StackMap locals:
StackMap stack:
19: iload 9
iload 5
if_icmplt 12
end local 9 20: iload 3
iconst_1
iadd
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/font/FileFontStrike;
0 21 1 ptr J
0 21 3 origMinX I
1 21 4 width I
2 21 5 height I
4 21 6 rowBytes I
8 21 7 pixelData J
11 20 9 y I
13 18 10 x I
MethodParameters:
Name Flags
ptr
origMinX
sun.font.StrikeMetrics getFontMetrics();
descriptor: ()Lsun/font/StrikeMetrics;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.font.FileFontStrike.strikeMetrics:Lsun/font/StrikeMetrics;
ifnonnull 6
1: aload 0
2: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
invokevirtual sun.font.FileFont.getFontMetrics:(J)Lsun/font/StrikeMetrics;
3: putfield sun.font.FileFontStrike.strikeMetrics:Lsun/font/StrikeMetrics;
4: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 6
5: aload 0
getfield sun.font.FileFontStrike.strikeMetrics:Lsun/font/StrikeMetrics;
aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
invokevirtual sun.font.StrikeMetrics.convertToUserSpace:(Ljava/awt/geom/AffineTransform;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.strikeMetrics:Lsun/font/StrikeMetrics;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/font/FileFontStrike;
java.awt.geom.Point2D$Float getGlyphMetrics(int);
descriptor: (I)Ljava/awt/geom/Point2D$Float;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
invokevirtual sun.font.FileFontStrike.getGlyphMetrics:(IZ)Ljava/awt/geom/Point2D$Float;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFontStrike;
0 1 1 glyphCode I
MethodParameters:
Name Flags
glyphCode
private java.awt.geom.Point2D$Float getGlyphMetrics(int, boolean);
descriptor: (IZ)Ljava/awt/geom/Point2D$Float;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: new java.awt.geom.Point2D$Float
dup
invokespecial java.awt.geom.Point2D$Float.<init>:()V
astore 3
start local 3 1: iload 1
ldc 65534
if_icmplt 3
2: aload 3
areturn
3: StackMap locals: java.awt.geom.Point2D$Float
StackMap stack:
aload 0
getfield sun.font.FileFontStrike.getImageWithAdvance:Z
ifeq 6
iload 2
ifeq 6
4: aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getGlyphImagePtr:(I)J
lstore 4
start local 4 5: goto 7
end local 4 6: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.font.FileFontStrike.getCachedGlyphPtr:(I)J
lstore 4
start local 4 7: StackMap locals: long
StackMap stack:
lload 4
lconst_0
lcmp
ifeq 18
8: new java.awt.geom.Point2D$Float
dup
invokespecial java.awt.geom.Point2D$Float.<init>:()V
astore 3
9: aload 3
getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
10: lload 4
getstatic sun.font.StrikeCache.xAdvanceOffset:I
i2l
ladd
11: invokevirtual jdk.internal.misc.Unsafe.getFloat:(J)F
putfield java.awt.geom.Point2D$Float.x:F
12: aload 3
getstatic sun.font.StrikeCache.unsafe:Ljdk/internal/misc/Unsafe;
13: lload 4
getstatic sun.font.StrikeCache.yAdvanceOffset:I
i2l
ladd
14: invokevirtual jdk.internal.misc.Unsafe.getFloat:(J)F
putfield java.awt.geom.Point2D$Float.y:F
15: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 43
16: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
aload 3
aload 3
invokevirtual java.awt.geom.AffineTransform.deltaTransform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
17: goto 43
18: StackMap locals:
StackMap stack:
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 6
start local 6 19: aconst_null
astore 7
start local 7 20: aconst_null
astore 8
start local 8 21: aload 0
getfield sun.font.FileFontStrike.glyphMetricsMapRef:Ljava/lang/ref/SoftReference;
ifnull 23
22: aload 0
getfield sun.font.FileFontStrike.glyphMetricsMapRef:Ljava/lang/ref/SoftReference;
invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
checkcast java.util.concurrent.ConcurrentHashMap
astore 8
23: StackMap locals: java.lang.Integer java.awt.geom.Point2D$Float java.util.concurrent.ConcurrentHashMap
StackMap stack:
aload 8
ifnull 29
24: aload 8
aload 6
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.awt.geom.Point2D$Float
astore 7
25: aload 7
ifnull 29
26: aload 3
aload 7
getfield java.awt.geom.Point2D$Float.x:F
putfield java.awt.geom.Point2D$Float.x:F
27: aload 3
aload 7
getfield java.awt.geom.Point2D$Float.y:F
putfield java.awt.geom.Point2D$Float.y:F
28: aload 3
areturn
29: StackMap locals:
StackMap stack:
aload 7
ifnonnull 43
30: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
aload 3
invokevirtual sun.font.FileFont.getGlyphMetrics:(JILjava/awt/geom/Point2D$Float;)V
31: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 33
32: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
aload 3
aload 3
invokevirtual java.awt.geom.AffineTransform.deltaTransform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
33: StackMap locals:
StackMap stack:
new java.awt.geom.Point2D$Float
dup
aload 3
getfield java.awt.geom.Point2D$Float.x:F
aload 3
getfield java.awt.geom.Point2D$Float.y:F
invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
astore 7
34: aload 8
ifnonnull 42
35: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
36: astore 8
37: aload 0
38: new java.lang.ref.SoftReference
dup
39: aload 8
40: invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
41: putfield sun.font.FileFontStrike.glyphMetricsMapRef:Ljava/lang/ref/SoftReference;
42: StackMap locals:
StackMap stack:
aload 8
aload 6
aload 7
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 7 end local 6 43: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lsun/font/FileFontStrike;
0 44 1 glyphCode I
0 44 2 getImage Z
1 44 3 metrics Ljava/awt/geom/Point2D$Float;
5 6 4 glyphPtr J
7 44 4 glyphPtr J
19 43 6 key Ljava/lang/Integer;
20 43 7 value Ljava/awt/geom/Point2D$Float;
21 43 8 glyphMetricsMap Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Ljava/awt/geom/Point2D$Float;>;
MethodParameters:
Name Flags
glyphCode
getImage
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.FileFontStrike.mapper:Lsun/font/CharToGlyphMapper;
iload 1
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(C)I
invokevirtual sun.font.FileFontStrike.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/FileFontStrike;
0 1 1 ch C
MethodParameters:
Name Flags
ch
java.awt.geom.Rectangle2D$Float getGlyphOutlineBounds(int);
descriptor: (I)Ljava/awt/geom/Rectangle2D$Float;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFontStrike.boundsMap:Ljava/util/concurrent/ConcurrentHashMap;
ifnonnull 2
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield sun.font.FileFontStrike.boundsMap:Ljava/util/concurrent/ConcurrentHashMap;
2: StackMap locals:
StackMap stack:
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 2
start local 2 3: aload 0
getfield sun.font.FileFontStrike.boundsMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.awt.geom.Rectangle2D$Float
astore 3
start local 3 4: aload 3
ifnonnull 7
5: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
invokevirtual sun.font.FileFont.getGlyphOutlineBounds:(JI)Ljava/awt/geom/Rectangle2D$Float;
astore 3
6: aload 0
getfield sun.font.FileFontStrike.boundsMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
aload 3
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: java.lang.Integer java.awt.geom.Rectangle2D$Float
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/font/FileFontStrike;
0 8 1 glyphCode I
3 8 2 key Ljava/lang/Integer;
4 8 3 bounds Ljava/awt/geom/Rectangle2D$Float;
MethodParameters:
Name Flags
glyphCode
public java.awt.geom.Rectangle2D getOutlineBounds(int);
descriptor: (I)Ljava/awt/geom/Rectangle2D;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
invokevirtual sun.font.FileFont.getGlyphOutlineBounds:(JI)Ljava/awt/geom/Rectangle2D$Float;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFontStrike;
0 1 1 glyphCode I
MethodParameters:
Name Flags
glyphCode
java.awt.geom.GeneralPath getGlyphOutline(int, float, float);
descriptor: (IFF)Ljava/awt/geom/GeneralPath;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aload 0
getfield sun.font.FileFontStrike.outlineMapRef:Ljava/lang/ref/WeakReference;
ifnull 6
3: aload 0
getfield sun.font.FileFontStrike.outlineMapRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.util.concurrent.ConcurrentHashMap
astore 5
4: aload 5
ifnull 6
5: aload 5
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.awt.geom.GeneralPath
astore 4
6: StackMap locals: java.awt.geom.GeneralPath java.util.concurrent.ConcurrentHashMap
StackMap stack:
aload 4
ifnonnull 16
7: aload 0
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
iload 1
fconst_0
fconst_0
invokevirtual sun.font.FileFont.getGlyphOutline:(JIFF)Ljava/awt/geom/GeneralPath;
astore 4
8: aload 5
ifnonnull 15
9: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
astore 5
10: aload 0
11: new java.lang.ref.WeakReference
dup
12: aload 5
13: invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
14: putfield sun.font.FileFontStrike.outlineMapRef:Ljava/lang/ref/WeakReference;
15: StackMap locals:
StackMap stack:
aload 5
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.awt.geom.GeneralPath.clone:()Ljava/lang/Object;
checkcast java.awt.geom.GeneralPath
astore 4
17: fload 2
fconst_0
fcmpl
ifne 18
fload 3
fconst_0
fcmpl
ifeq 19
18: StackMap locals:
StackMap stack:
aload 4
fload 2
f2d
fload 3
f2d
invokestatic java.awt.geom.AffineTransform.getTranslateInstance:(DD)Ljava/awt/geom/AffineTransform;
invokevirtual java.awt.geom.GeneralPath.transform:(Ljava/awt/geom/AffineTransform;)V
19: StackMap locals:
StackMap stack:
aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/font/FileFontStrike;
0 20 1 glyphCode I
0 20 2 x F
0 20 3 y F
1 20 4 gp Ljava/awt/geom/GeneralPath;
2 20 5 outlineMap Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Ljava/awt/geom/GeneralPath;>;
MethodParameters:
Name Flags
glyphCode
x
y
java.awt.geom.GeneralPath getGlyphVectorOutline(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
getfield sun.font.FileFontStrike.fileFont:Lsun/font/FileFont;
aload 0
getfield sun.font.FileFontStrike.pScalerContext:J
1: aload 1
aload 1
arraylength
fload 2
fload 3
2: invokevirtual sun.font.FileFont.getGlyphVectorOutline:(J[IIFF)Ljava/awt/geom/GeneralPath;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/FileFontStrike;
0 3 1 glyphs [I
0 3 2 x F
0 3 3 y F
MethodParameters:
Name Flags
glyphs
x
y
protected void adjustPoint(java.awt.geom.Point2D$Float);
descriptor: (Ljava/awt/geom/Point2D$Float;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
ifnull 2
1: aload 0
getfield sun.font.FileFontStrike.invertDevTx:Ljava/awt/geom/AffineTransform;
aload 1
aload 1
invokevirtual java.awt.geom.AffineTransform.deltaTransform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/FileFontStrike;
0 3 1 pt Ljava/awt/geom/Point2D$Float;
MethodParameters:
Name Flags
pt
}
SourceFile: "FileFontStrike.java"
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