public final class sun.font.CompositeStrike extends sun.font.FontStrike
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.font.CompositeStrike
super_class: sun.font.FontStrike
{
static final int SLOTMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16777215
private sun.font.CompositeFont compFont;
descriptor: Lsun/font/CompositeFont;
flags: (0x0002) ACC_PRIVATE
private sun.font.PhysicalStrike[] strikes;
descriptor: [Lsun/font/PhysicalStrike;
flags: (0x0002) ACC_PRIVATE
int numGlyphs;
descriptor: I
flags: (0x0000)
void <init>(sun.font.CompositeFont, sun.font.FontStrikeDesc);
descriptor: (Lsun/font/CompositeFont;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.FontStrike.<init>:()V
1: aload 0
iconst_0
putfield sun.font.CompositeStrike.numGlyphs:I
2: aload 0
aload 1
putfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
3: aload 0
aload 2
putfield sun.font.CompositeStrike.desc:Lsun/font/FontStrikeDesc;
4: aload 0
new sun.font.FontStrikeDisposer
dup
aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
aload 2
invokespecial sun.font.FontStrikeDisposer.<init>:(Lsun/font/Font2D;Lsun/font/FontStrikeDesc;)V
putfield sun.font.CompositeStrike.disposer:Lsun/font/FontStrikeDisposer;
5: aload 2
getfield sun.font.FontStrikeDesc.style:I
aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
getfield sun.font.CompositeFont.style:I
if_icmpeq 13
6: aload 0
iconst_1
putfield sun.font.CompositeStrike.algoStyle:Z
7: aload 2
getfield sun.font.FontStrikeDesc.style:I
iconst_1
iand
iconst_1
if_icmpne 10
8: aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
getfield sun.font.CompositeFont.style:I
iconst_1
iand
ifne 10
9: aload 0
ldc 1.33
putfield sun.font.CompositeStrike.boldness:F
10: StackMap locals: sun.font.CompositeStrike sun.font.CompositeFont sun.font.FontStrikeDesc
StackMap stack:
aload 2
getfield sun.font.FontStrikeDesc.style:I
iconst_2
iand
iconst_2
if_icmpne 13
11: aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
getfield sun.font.CompositeFont.style:I
iconst_2
iand
ifne 13
12: aload 0
ldc 0.7
putfield sun.font.CompositeStrike.italic:F
13: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
getfield sun.font.CompositeFont.numSlots:I
anewarray sun.font.PhysicalStrike
putfield sun.font.CompositeStrike.strikes:[Lsun/font/PhysicalStrike;
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/font/CompositeStrike;
0 15 1 font2D Lsun/font/CompositeFont;
0 15 2 desc Lsun/font/FontStrikeDesc;
MethodParameters:
Name Flags
font2D
desc
sun.font.PhysicalStrike getStrikeForGlyph(int);
descriptor: (I)Lsun/font/PhysicalStrike;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
bipush 24
iushr
invokevirtual sun.font.CompositeStrike.getStrikeForSlot:(I)Lsun/font/PhysicalStrike;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/CompositeStrike;
0 1 1 glyphCode I
MethodParameters:
Name Flags
glyphCode
sun.font.PhysicalStrike getStrikeForSlot(int);
descriptor: (I)Lsun/font/PhysicalStrike;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield sun.font.CompositeStrike.strikes:[Lsun/font/PhysicalStrike;
arraylength
if_icmplt 2
1: iconst_0
istore 1
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.CompositeStrike.strikes:[Lsun/font/PhysicalStrike;
iload 1
aaload
astore 2
start local 2 3: aload 2
ifnonnull 7
4: aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
iload 1
invokevirtual sun.font.CompositeFont.getSlotFont:(I)Lsun/font/PhysicalFont;
aload 0
getfield sun.font.CompositeStrike.desc:Lsun/font/FontStrikeDesc;
invokevirtual sun.font.PhysicalFont.getStrike:(Lsun/font/FontStrikeDesc;)Lsun/font/FontStrike;
checkcast sun.font.PhysicalStrike
5: astore 2
6: aload 0
getfield sun.font.CompositeStrike.strikes:[Lsun/font/PhysicalStrike;
iload 1
aload 2
aastore
7: StackMap locals: sun.font.PhysicalStrike
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/font/CompositeStrike;
0 8 1 slot I
3 8 2 strike Lsun/font/PhysicalStrike;
MethodParameters:
Name Flags
slot
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.CompositeStrike.compFont:Lsun/font/CompositeFont;
invokevirtual sun.font.CompositeFont.getNumGlyphs:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/CompositeStrike;
sun.font.StrikeMetrics getFontMetrics();
descriptor: ()Lsun/font/StrikeMetrics;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.font.CompositeStrike.strikeMetrics:Lsun/font/StrikeMetrics;
ifnonnull 8
1: new sun.font.StrikeMetrics
dup
invokespecial sun.font.StrikeMetrics.<init>:()V
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 6
4: StackMap locals: sun.font.StrikeMetrics int
StackMap stack:
aload 1
aload 0
iload 2
invokevirtual sun.font.CompositeStrike.getStrikeForSlot:(I)Lsun/font/PhysicalStrike;
invokevirtual sun.font.PhysicalStrike.getFontMetrics:()Lsun/font/StrikeMetrics;
invokevirtual sun.font.StrikeMetrics.merge:(Lsun/font/StrikeMetrics;)V
5: iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
getfield sun.font.CompositeStrike.compFont:Lsun/font/CompositeFont;
getfield sun.font.CompositeFont.numMetricsSlots:I
if_icmplt 4
end local 2 7: aload 0
aload 1
putfield sun.font.CompositeStrike.strikeMetrics:Lsun/font/StrikeMetrics;
end local 1 8: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.CompositeStrike.strikeMetrics:Lsun/font/StrikeMetrics;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/font/CompositeStrike;
2 8 1 compMetrics Lsun/font/StrikeMetrics;
3 7 2 s I
void getGlyphImagePtrs(int[], long[], int);
descriptor: ([I[JI)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_0
invokevirtual sun.font.CompositeStrike.getStrikeForSlot:(I)Lsun/font/PhysicalStrike;
astore 4
start local 4 1: aload 4
aload 1
aload 2
iload 3
invokevirtual sun.font.PhysicalStrike.getSlot0GlyphImagePtrs:([I[JI)I
istore 5
start local 5 2: iload 5
iload 3
if_icmpne 4
3: return
4: StackMap locals: sun.font.PhysicalStrike int
StackMap stack:
iload 5
istore 6
start local 6 5: goto 9
6: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 6
iaload
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 4
7: aload 2
iload 6
aload 4
aload 1
iload 6
iaload
ldc 16777215
iand
invokevirtual sun.font.PhysicalStrike.getGlyphImagePtr:(I)J
lastore
8: iinc 6 1
StackMap locals:
StackMap stack:
9: iload 6
iload 3
if_icmplt 6
end local 6 10: return
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 11 0 this Lsun/font/CompositeStrike;
0 11 1 glyphCodes [I
0 11 2 images [J
0 11 3 len I
1 11 4 strike Lsun/font/PhysicalStrike;
2 11 5 numptrs I
5 10 6 i I
MethodParameters:
Name Flags
glyphCodes
images
len
long getGlyphImagePtr(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 2
start local 2 1: aload 2
iload 1
ldc 16777215
iand
invokevirtual sun.font.PhysicalStrike.getGlyphImagePtr:(I)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/CompositeStrike;
0 2 1 glyphCode I
1 2 2 strike Lsun/font/PhysicalStrike;
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=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 4
start local 4 1: aload 4
iload 1
ldc 16777215
iand
aload 2
aload 3
invokevirtual sun.font.PhysicalStrike.getGlyphImageBounds:(ILjava/awt/geom/Point2D$Float;Ljava/awt/Rectangle;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/CompositeStrike;
0 3 1 glyphCode I
0 3 2 pt Ljava/awt/geom/Point2D$Float;
0 3 3 result Ljava/awt/Rectangle;
1 3 4 strike Lsun/font/PhysicalStrike;
MethodParameters:
Name Flags
glyphCode
pt
result
java.awt.geom.Point2D$Float getGlyphMetrics(int);
descriptor: (I)Ljava/awt/geom/Point2D$Float;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 2
start local 2 1: aload 2
iload 1
ldc 16777215
iand
invokevirtual sun.font.PhysicalStrike.getGlyphMetrics:(I)Ljava/awt/geom/Point2D$Float;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/CompositeStrike;
0 2 1 glyphCode I
1 2 2 strike Lsun/font/PhysicalStrike;
MethodParameters:
Name Flags
glyphCode
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.CompositeStrike.compFont:Lsun/font/CompositeFont;
invokevirtual sun.font.CompositeFont.getMapper:()Lsun/font/CharToGlyphMapper;
iload 1
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(C)I
invokevirtual sun.font.CompositeStrike.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/CompositeStrike;
0 1 1 ch C
MethodParameters:
Name Flags
ch
float getGlyphAdvance(int);
descriptor: (I)F
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 2
start local 2 1: aload 2
iload 1
ldc 16777215
iand
invokevirtual sun.font.PhysicalStrike.getGlyphAdvance:(I)F
freturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/CompositeStrike;
0 2 1 glyphCode I
1 2 2 strike Lsun/font/PhysicalStrike;
MethodParameters:
Name Flags
glyphCode
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.CompositeStrike.compFont:Lsun/font/CompositeFont;
invokevirtual sun.font.CompositeFont.getMapper:()Lsun/font/CharToGlyphMapper;
iload 1
invokevirtual sun.font.CharToGlyphMapper.charToGlyph:(I)I
invokevirtual sun.font.CompositeStrike.getGlyphAdvance:(I)F
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/CompositeStrike;
0 1 1 cp I
MethodParameters:
Name Flags
cp
java.awt.geom.Rectangle2D$Float getGlyphOutlineBounds(int);
descriptor: (I)Ljava/awt/geom/Rectangle2D$Float;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 2
start local 2 1: aload 2
iload 1
ldc 16777215
iand
invokevirtual sun.font.PhysicalStrike.getGlyphOutlineBounds:(I)Ljava/awt/geom/Rectangle2D$Float;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/CompositeStrike;
0 2 1 glyphCode I
1 2 2 strike Lsun/font/PhysicalStrike;
MethodParameters:
Name Flags
glyphCode
java.awt.geom.GeneralPath getGlyphOutline(int, float, float);
descriptor: (IFF)Ljava/awt/geom/GeneralPath;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
invokevirtual sun.font.CompositeStrike.getStrikeForGlyph:(I)Lsun/font/PhysicalStrike;
astore 4
start local 4 1: aload 4
iload 1
ldc 16777215
iand
fload 2
fload 3
invokevirtual sun.font.PhysicalStrike.getGlyphOutline:(IFF)Ljava/awt/geom/GeneralPath;
astore 5
start local 5 2: aload 5
ifnonnull 4
3: new java.awt.geom.GeneralPath
dup
invokespecial java.awt.geom.GeneralPath.<init>:()V
areturn
4: StackMap locals: sun.font.PhysicalStrike java.awt.geom.GeneralPath
StackMap stack:
aload 5
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 5 0 this Lsun/font/CompositeStrike;
0 5 1 glyphCode I
0 5 2 x F
0 5 3 y F
1 5 4 strike Lsun/font/PhysicalStrike;
2 5 5 path 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=4, locals=12, 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_0
istore 6
start local 6 2: goto 22
3: StackMap locals: sun.font.CompositeStrike int[] float float java.awt.geom.GeneralPath top int
StackMap stack:
iload 6
istore 8
start local 8 4: aload 1
iload 6
iaload
bipush 24
iushr
istore 9
start local 9 5: goto 7
6: StackMap locals: sun.font.CompositeStrike int[] float float java.awt.geom.GeneralPath top int top int int
StackMap stack:
iinc 6 1
7: StackMap locals:
StackMap stack:
iload 6
aload 1
arraylength
if_icmpge 9
8: aload 1
iload 6
iconst_1
iadd
iaload
bipush 24
iushr
iload 9
if_icmpeq 6
9: StackMap locals:
StackMap stack:
iload 6
iload 8
isub
iconst_1
iadd
istore 10
start local 10 10: iload 10
newarray 10
astore 7
start local 7 11: iconst_0
istore 11
start local 11 12: goto 15
13: StackMap locals: sun.font.CompositeStrike int[] float float java.awt.geom.GeneralPath top int int[] int int int int
StackMap stack:
aload 7
iload 11
aload 1
iload 11
iaload
ldc 16777215
iand
iastore
14: iinc 11 1
StackMap locals:
StackMap stack:
15: iload 11
iload 10
if_icmplt 13
end local 11 16: aload 0
iload 9
invokevirtual sun.font.CompositeStrike.getStrikeForSlot:(I)Lsun/font/PhysicalStrike;
aload 7
fload 2
fload 3
invokevirtual sun.font.PhysicalStrike.getGlyphVectorOutline:([IFF)Ljava/awt/geom/GeneralPath;
astore 5
start local 5 17: aload 4
ifnonnull 20
18: aload 5
astore 4
19: goto 22
StackMap locals: sun.font.CompositeStrike int[] float float java.awt.geom.GeneralPath java.awt.geom.GeneralPath int int[] int int int
StackMap stack:
20: aload 5
ifnull 22
21: aload 4
aload 5
iconst_0
invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
end local 10 end local 9 end local 8 end local 7 end local 5 22: StackMap locals: sun.font.CompositeStrike int[] float float java.awt.geom.GeneralPath top int
StackMap stack:
iload 6
aload 1
arraylength
if_icmplt 3
23: aload 4
ifnonnull 25
24: new java.awt.geom.GeneralPath
dup
invokespecial java.awt.geom.GeneralPath.<init>:()V
areturn
25: StackMap locals:
StackMap stack:
aload 4
areturn
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 26 0 this Lsun/font/CompositeStrike;
0 26 1 glyphs [I
0 26 2 x F
0 26 3 y F
1 26 4 path Ljava/awt/geom/GeneralPath;
17 22 5 gp Ljava/awt/geom/GeneralPath;
2 26 6 glyphIndex I
11 22 7 tmpGlyphs [I
4 22 8 start I
5 22 9 slot I
10 22 10 tmpLen I
12 16 11 i I
MethodParameters:
Name Flags
glyphs
x
y
}
SourceFile: "CompositeStrike.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