public abstract class sun.font.FileFont extends sun.font.PhysicalFont
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.font.FileFont
super_class: sun.font.PhysicalFont
{
protected boolean useJavaRasterizer;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected int fileSize;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected sun.font.FontScaler scaler;
descriptor: Lsun/font/FontScaler;
flags: (0x0004) ACC_PROTECTED
protected boolean checkedNatives;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected boolean useNatives;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected sun.font.NativeFont[] nativeFonts;
descriptor: [Lsun/font/NativeFont;
flags: (0x0004) ACC_PROTECTED
protected char[] glyphToCharMap;
descriptor: [C
flags: (0x0004) ACC_PROTECTED
void <init>(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial sun.font.PhysicalFont.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
iconst_1
putfield sun.font.FileFont.useJavaRasterizer:Z
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/FileFont;
0 3 1 platname Ljava/lang/String;
0 3 2 nativeNames Ljava/lang/Object;
Exceptions:
throws java.awt.FontFormatException
MethodParameters:
Name Flags
platname
nativeNames
sun.font.FontStrike createStrike(sun.font.FontStrikeDesc);
descriptor: (Lsun/font/FontStrikeDesc;)Lsun/font/FontStrike;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.FileFont.checkedNatives:Z
ifne 2
1: aload 0
invokevirtual sun.font.FileFont.checkUseNatives:()Z
pop
2: StackMap locals:
StackMap stack:
new sun.font.FileFontStrike
dup
aload 0
aload 1
invokespecial sun.font.FileFontStrike.<init>:(Lsun/font/FileFont;Lsun/font/FontStrikeDesc;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/FileFont;
0 3 1 desc Lsun/font/FontStrikeDesc;
MethodParameters:
Name Flags
desc
protected boolean checkUseNatives();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield sun.font.FileFont.checkedNatives:Z
1: aload 0
getfield sun.font.FileFont.useNatives:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/FileFont;
protected abstract void close();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
abstract java.nio.ByteBuffer readBlock(int, int);
descriptor: (II)Ljava/nio/ByteBuffer;
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
offset
length
public boolean canDoStyle(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFont;
0 1 1 style I
MethodParameters:
Name Flags
style
static void setFileToRemove(java.util.List<sun.font.Font2D>, java.io.File, int, sun.font.CreatedFontTracker);
descriptor: (Ljava/util/List;Ljava/io/File;ILsun/font/CreatedFontTracker;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.font.FileFont$CreatedFontFileDisposerRecord
dup
aload 1
iload 2
aload 3
invokespecial sun.font.FileFont$CreatedFontFileDisposerRecord.<init>:(Ljava/io/File;ILsun/font/CreatedFontTracker;)V
1: astore 4
start local 4 2: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 5
StackMap locals: java.util.List java.io.File int sun.font.CreatedFontTracker sun.font.FileFont$CreatedFontFileDisposerRecord top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.font.Font2D
astore 5
start local 5 4: aload 5
aload 4
invokestatic sun.java2d.Disposer.addObjectRecord:(Ljava/lang/Object;Lsun/java2d/DisposerRecord;)V
end local 5 5: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 fonts Ljava/util/List<Lsun/font/Font2D;>;
0 7 1 file Ljava/io/File;
0 7 2 cnt I
0 7 3 tracker Lsun/font/CreatedFontTracker;
2 7 4 dr Lsun/font/FileFont$CreatedFontFileDisposerRecord;
4 5 5 f Lsun/font/Font2D;
Signature: (Ljava/util/List<Lsun/font/Font2D;>;Ljava/io/File;ILsun/font/CreatedFontTracker;)V
MethodParameters:
Name Flags
fonts
file
cnt
tracker
synchronized void deregisterFontAndClearStrikeCache();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=4, locals=5, args_size=1
start local 0 0: invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual sun.font.SunFontManager.deRegisterBadFont:(Lsun/font/Font2D;)V
2: aload 0
getfield sun.font.FileFont.strikeCache:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: sun.font.FileFont sun.font.SunFontManager top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.Reference
astore 2
start local 2 4: aload 2
ifnull 8
5: aload 2
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast sun.font.FileFontStrike
astore 4
start local 4 6: aload 4
ifnull 8
aload 4
getfield sun.font.FileFontStrike.pScalerContext:J
lconst_0
lcmp
ifeq 8
7: aload 0
getfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
aload 4
getfield sun.font.FileFontStrike.pScalerContext:J
invokevirtual sun.font.FontScaler.invalidateScalerContext:(J)V
end local 4 end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: aload 0
getfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
ifnull 11
10: aload 0
getfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
invokevirtual sun.font.FontScaler.dispose:()V
11: StackMap locals: sun.font.FileFont sun.font.SunFontManager
StackMap stack:
aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/font/FileFont;
1 13 1 fm Lsun/font/SunFontManager;
4 8 2 strikeRef Ljava/lang/ref/Reference<Lsun/font/FontStrike;>;
6 8 4 strike Lsun/font/FileFontStrike;
sun.font.StrikeMetrics getFontMetrics(long);
descriptor: (J)Lsun/font/StrikeMetrics;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
invokevirtual sun.font.FontScaler.getFontMetrics:(J)Lsun/font/StrikeMetrics;
1: areturn
2: StackMap locals:
StackMap stack: sun.font.FontScalerException
pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
invokevirtual sun.font.FileFont.getFontMetrics:(J)Lsun/font/StrikeMetrics;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/FileFont;
0 5 1 pScalerContext J
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
float getGlyphAdvance(long, int);
descriptor: (JI)F
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
iload 3
invokevirtual sun.font.FontScaler.getGlyphAdvance:(JI)F
1: freturn
2: StackMap locals:
StackMap stack: sun.font.FontScalerException
pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
iload 3
invokevirtual sun.font.FileFont.getGlyphAdvance:(JI)F
freturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/FileFont;
0 5 1 pScalerContext J
0 5 3 glyphCode I
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
void getGlyphMetrics(long, int, java.awt.geom.Point2D$Float);
descriptor: (JILjava/awt/geom/Point2D$Float;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
iload 3
aload 4
invokevirtual sun.font.FontScaler.getGlyphMetrics:(JILjava/awt/geom/Point2D$Float;)V
1: goto 5
StackMap locals:
StackMap stack: sun.font.FontScalerException
2: pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
iload 3
aload 4
invokevirtual sun.font.FileFont.getGlyphMetrics:(JILjava/awt/geom/Point2D$Float;)V
5: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/font/FileFont;
0 6 1 pScalerContext J
0 6 3 glyphCode I
0 6 4 metrics Ljava/awt/geom/Point2D$Float;
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
metrics
long getGlyphImage(long, int);
descriptor: (JI)J
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
iload 3
invokevirtual sun.font.FontScaler.getGlyphImage:(JI)J
1: lreturn
2: StackMap locals:
StackMap stack: sun.font.FontScalerException
pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
iload 3
invokevirtual sun.font.FileFont.getGlyphImage:(JI)J
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/FileFont;
0 5 1 pScalerContext J
0 5 3 glyphCode I
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
java.awt.geom.Rectangle2D$Float getGlyphOutlineBounds(long, int);
descriptor: (JI)Ljava/awt/geom/Rectangle2D$Float;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
iload 3
invokevirtual sun.font.FontScaler.getGlyphOutlineBounds:(JI)Ljava/awt/geom/Rectangle2D$Float;
1: areturn
2: StackMap locals:
StackMap stack: sun.font.FontScalerException
pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
iload 3
invokevirtual sun.font.FileFont.getGlyphOutlineBounds:(JI)Ljava/awt/geom/Rectangle2D$Float;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/FileFont;
0 5 1 pScalerContext J
0 5 3 glyphCode I
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
java.awt.geom.GeneralPath getGlyphOutline(long, int, float, float);
descriptor: (JIFF)Ljava/awt/geom/GeneralPath;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
iload 3
fload 4
fload 5
invokevirtual sun.font.FontScaler.getGlyphOutline:(JIFF)Ljava/awt/geom/GeneralPath;
1: areturn
2: StackMap locals:
StackMap stack: sun.font.FontScalerException
pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
iload 3
fload 4
fload 5
invokevirtual sun.font.FileFont.getGlyphOutline:(JIFF)Ljava/awt/geom/GeneralPath;
areturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/FileFont;
0 5 1 pScalerContext J
0 5 3 glyphCode I
0 5 4 x F
0 5 5 y F
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
x
y
java.awt.geom.GeneralPath getGlyphVectorOutline(long, int[], int, float, float);
descriptor: (J[IIFF)Ljava/awt/geom/GeneralPath;
flags: (0x0000)
Code:
stack=7, locals=7, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
lload 1
aload 3
iload 4
fload 5
fload 6
invokevirtual sun.font.FontScaler.getGlyphVectorOutline:(J[IIFF)Ljava/awt/geom/GeneralPath;
1: areturn
2: StackMap locals:
StackMap stack: sun.font.FontScalerException
pop
3: aload 0
invokestatic sun.font.FontScaler.getNullScaler:()Lsun/font/FontScaler;
putfield sun.font.FileFont.scaler:Lsun/font/FontScaler;
4: aload 0
lload 1
aload 3
iload 4
fload 5
fload 6
invokevirtual sun.font.FileFont.getGlyphVectorOutline:(J[IIFF)Ljava/awt/geom/GeneralPath;
areturn
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 5 0 this Lsun/font/FileFont;
0 5 1 pScalerContext J
0 5 3 glyphs [I
0 5 4 numGlyphs I
0 5 5 x F
0 5 6 y F
Exception table:
from to target type
0 1 2 Class sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphs
numGlyphs
x
y
protected abstract sun.font.FontScaler getScaler();
descriptor: ()Lsun/font/FontScaler;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected long getUnitsPerEm();
descriptor: ()J
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.font.FileFont.getScaler:()Lsun/font/FontScaler;
invokevirtual sun.font.FontScaler.getUnitsPerEm:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FileFont;
protected java.lang.String getPublicFileName();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
getfield sun.font.FileFont.platName:Ljava/lang/String;
areturn
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
iconst_1
istore 2
start local 2 4: aload 1
ldc "java.io.tmpdir"
invokevirtual java.lang.SecurityManager.checkPropertyAccess:(Ljava/lang/String;)V
5: goto 8
StackMap locals: sun.font.FileFont java.lang.SecurityManager int
StackMap stack: java.lang.SecurityException
6: pop
7: iconst_0
istore 2
8: StackMap locals:
StackMap stack:
iload 2
ifeq 10
9: aload 0
getfield sun.font.FileFont.platName:Ljava/lang/String;
areturn
10: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield sun.font.FileFont.platName:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 11: getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
astore 4
start local 4 12: new sun.font.FileFont$1
dup
aload 0
aload 3
invokespecial sun.font.FileFont$1.<init>:(Lsun/font/FileFont;Ljava/io/File;)V
13: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 4
14: goto 17
StackMap locals: sun.font.FileFont java.lang.SecurityManager int java.io.File java.lang.Boolean
StackMap stack: java.security.PrivilegedActionException
15: pop
16: getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
astore 4
17: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 18
ldc "temp file"
goto 19
StackMap locals:
StackMap stack:
18: aload 0
getfield sun.font.FileFont.platName:Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
19: areturn
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/FileFont;
1 20 1 sm Ljava/lang/SecurityManager;
4 20 2 canReadProperty Z
11 20 3 f Ljava/io/File;
12 20 4 isTmpFile Ljava/lang/Boolean;
Exception table:
from to target type
4 5 6 Class java.lang.SecurityException
12 14 15 Class java.security.PrivilegedActionException
}
SourceFile: "FileFont.java"
NestMembers:
sun.font.FileFont$1 sun.font.FileFont$CreatedFontFileDisposerRecord sun.font.FileFont$CreatedFontFileDisposerRecord$1
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
sun.font.FileFont$1
private CreatedFontFileDisposerRecord = sun.font.FileFont$CreatedFontFileDisposerRecord of sun.font.FileFont