public abstract class sun.font.FontScaler implements sun.java2d.DisposerRecord
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.font.FontScaler
super_class: java.lang.Object
{
private static sun.font.FontScaler nullScaler;
descriptor: Lsun/font/FontScaler;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.reflect.Constructor<? extends sun.font.FontScaler> scalerConstructor;
descriptor: Ljava/lang/reflect/Constructor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/lang/reflect/Constructor<+Lsun/font/FontScaler;>;
protected java.lang.ref.WeakReference<sun.font.Font2D> font;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0004) ACC_PROTECTED
Signature: Ljava/lang/ref/WeakReference<Lsun/font/Font2D;>;
protected long nativeScaler;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected boolean disposed;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=0
0: aconst_null
putstatic sun.font.FontScaler.nullScaler:Lsun/font/FontScaler;
1: aconst_null
putstatic sun.font.FontScaler.scalerConstructor:Ljava/lang/reflect/Constructor;
2: aconst_null
astore 0
start local 0 3: iconst_4
anewarray java.lang.Class
dup
iconst_0
ldc Lsun/font/Font2D;
aastore
dup
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
4: getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
dup
iconst_3
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
5: astore 1
start local 1 6: getstatic sun.font.FontUtilities.isOpenJDK:Z
ifeq 8
7: ldc "sun.font.FreetypeFontScaler"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
goto 9
8: StackMap locals: java.lang.Class java.lang.Class[]
StackMap stack:
ldc "sun.font.T2KFontScaler"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
9: StackMap locals:
StackMap stack: java.lang.Class
astore 2
start local 2 10: aload 2
astore 0
end local 2 11: goto 14
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
12: pop
13: ldc Lsun/font/NullFontScaler;
astore 0
14: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
putstatic sun.font.FontScaler.scalerConstructor:Ljava/lang/reflect/Constructor;
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
16: pop
end local 1 end local 0 17: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
3 17 0 scalerClass Ljava/lang/Class<+Lsun/font/FontScaler;>;
6 17 1 arglst [Ljava/lang/Class;
10 11 2 tmp Ljava/lang/Class<+Lsun/font/FontScaler;>;
Exception table:
from to target type
6 11 12 Class java.lang.ClassNotFoundException
14 15 16 Class java.lang.NoSuchMethodException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield sun.font.FontScaler.font:Ljava/lang/ref/WeakReference;
2: aload 0
lconst_0
putfield sun.font.FontScaler.nativeScaler:J
3: aload 0
iconst_0
putfield sun.font.FontScaler.disposed:Z
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/FontScaler;
public static sun.font.FontScaler getScaler(sun.font.Font2D, int, boolean, int);
descriptor: (Lsun/font/Font2D;IZI)Lsun/font/FontScaler;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, 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: iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
2: iload 2
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_3
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
3: astore 5
start local 5 4: getstatic sun.font.FontScaler.scalerConstructor:Ljava/lang/reflect/Constructor;
aload 5
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.font.FontScaler
astore 4
5: aload 0
aload 4
invokestatic sun.java2d.Disposer.addObjectRecord:(Ljava/lang/Object;Lsun/java2d/DisposerRecord;)V
end local 5 6: goto 11
StackMap locals: sun.font.Font2D int int int sun.font.FontScaler
StackMap stack: java.lang.Throwable
7: pop
8: getstatic sun.font.FontScaler.nullScaler:Lsun/font/FontScaler;
astore 4
9: invokestatic sun.font.FontManagerFactory.getInstance:()Lsun/font/FontManager;
astore 5
start local 5 10: aload 5
aload 0
invokeinterface sun.font.FontManager.deRegisterBadFont:(Lsun/font/Font2D;)V
end local 5 11: StackMap locals:
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 12 0 font Lsun/font/Font2D;
0 12 1 indexInCollection I
0 12 2 supportsCJK Z
0 12 3 filesize I
1 12 4 scaler Lsun/font/FontScaler;
4 6 5 args [Ljava/lang/Object;
10 11 5 fm Lsun/font/FontManager;
Exception table:
from to target type
1 6 7 Class java.lang.Throwable
MethodParameters:
Name Flags
font
indexInCollection
supportsCJK
filesize
public static synchronized sun.font.FontScaler getNullScaler();
descriptor: ()Lsun/font/FontScaler;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=0, args_size=0
0: getstatic sun.font.FontScaler.nullScaler:Lsun/font/FontScaler;
ifnonnull 2
1: new sun.font.NullFontScaler
dup
invokespecial sun.font.NullFontScaler.<init>:()V
putstatic sun.font.FontScaler.nullScaler:Lsun/font/FontScaler;
2: StackMap locals:
StackMap stack:
getstatic sun.font.FontScaler.nullScaler:Lsun/font/FontScaler;
areturn
LocalVariableTable:
Start End Slot Name Signature
abstract sun.font.StrikeMetrics getFontMetrics(long);
descriptor: (J)Lsun/font/StrikeMetrics;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
abstract float getGlyphAdvance(long, int);
descriptor: (JI)F
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
abstract void getGlyphMetrics(long, int, java.awt.geom.Point2D$Float);
descriptor: (JILjava/awt/geom/Point2D$Float;)V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
metrics
abstract long getGlyphImage(long, int);
descriptor: (JI)J
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
abstract java.awt.geom.Rectangle2D$Float getGlyphOutlineBounds(long, int);
descriptor: (JI)Ljava/awt/geom/Rectangle2D$Float;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pContext
glyphCode
abstract java.awt.geom.GeneralPath getGlyphOutline(long, int, float, float);
descriptor: (JIFF)Ljava/awt/geom/GeneralPath;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
x
y
abstract java.awt.geom.GeneralPath getGlyphVectorOutline(long, int[], int, float, float);
descriptor: (J[IIFF)Ljava/awt/geom/GeneralPath;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphs
numGlyphs
x
y
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/FontScaler;
abstract int getNumGlyphs();
descriptor: ()I
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
abstract int getMissingGlyphCode();
descriptor: ()I
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
abstract int getGlyphCode(char);
descriptor: (C)I
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
charCode
abstract long getLayoutTableCache();
descriptor: ()J
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
abstract java.awt.geom.Point2D$Float getGlyphPoint(long, int, int);
descriptor: (JII)Ljava/awt/geom/Point2D$Float;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws sun.font.FontScalerException
MethodParameters:
Name Flags
pScalerContext
glyphCode
ptNumber
abstract long getUnitsPerEm();
descriptor: ()J
flags: (0x0400) ACC_ABSTRACT
abstract long createScalerContext(double[], int, int, float, float, boolean);
descriptor: ([DIIFFZ)J
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
matrix
aa
fm
boldness
italic
disableHinting
abstract void invalidateScalerContext(long);
descriptor: (J)V
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
ppScalerContext
}
SourceFile: "FontScaler.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