final class sun.font.Decoration$DecorationImpl extends sun.font.Decoration
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.font.Decoration$DecorationImpl
super_class: sun.font.Decoration
{
private java.awt.Paint fgPaint;
descriptor: Ljava/awt/Paint;
flags: (0x0002) ACC_PRIVATE
private java.awt.Paint bgPaint;
descriptor: Ljava/awt/Paint;
flags: (0x0002) ACC_PRIVATE
private boolean swapColors;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean strikethrough;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private sun.font.Underline stdUnderline;
descriptor: Lsun/font/Underline;
flags: (0x0002) ACC_PRIVATE
private sun.font.Underline imUnderline;
descriptor: Lsun/font/Underline;
flags: (0x0002) ACC_PRIVATE
void <init>(java.awt.Paint, java.awt.Paint, boolean, boolean, sun.font.Underline, sun.font.Underline);
descriptor: (Ljava/awt/Paint;Ljava/awt/Paint;ZZLsun/font/Underline;Lsun/font/Underline;)V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial sun.font.Decoration.<init>:()V
1: aload 0
aconst_null
putfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
2: aload 0
aconst_null
putfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
3: aload 0
iconst_0
putfield sun.font.Decoration$DecorationImpl.swapColors:Z
4: aload 0
iconst_0
putfield sun.font.Decoration$DecorationImpl.strikethrough:Z
5: aload 0
aconst_null
putfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
6: aload 0
aconst_null
putfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
7: aload 0
aload 1
putfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
8: aload 0
aload 2
putfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
9: aload 0
iload 3
putfield sun.font.Decoration$DecorationImpl.swapColors:Z
10: aload 0
iload 4
putfield sun.font.Decoration$DecorationImpl.strikethrough:Z
11: aload 0
aload 5
putfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
12: aload 0
aload 6
putfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
13: return
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 14 0 this Lsun/font/Decoration$DecorationImpl;
0 14 1 foreground Ljava/awt/Paint;
0 14 2 background Ljava/awt/Paint;
0 14 3 swapColors Z
0 14 4 strikethrough Z
0 14 5 stdUnderline Lsun/font/Underline;
0 14 6 imUnderline Lsun/font/Underline;
MethodParameters:
Name Flags
foreground
background
swapColors
strikethrough
stdUnderline
imUnderline
private static boolean areEqual(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 3
1: aload 1
ifnonnull 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 lhs Ljava/lang/Object;
0 4 1 rhs Ljava/lang/Object;
MethodParameters:
Name Flags
lhs
rhs
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 5: aload 1
checkcast sun.font.Decoration$DecorationImpl
astore 2
6: goto 9
7: StackMap locals: sun.font.Decoration$DecorationImpl java.lang.Object sun.font.Decoration$DecorationImpl
StackMap stack: java.lang.ClassCastException
pop
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
aload 2
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
if_icmpne 11
10: aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
aload 2
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
if_icmpeq 12
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
aload 2
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
invokestatic sun.font.Decoration$DecorationImpl.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 14
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
aload 2
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
invokestatic sun.font.Decoration$DecorationImpl.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 16
15: iconst_0
ireturn
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
aload 2
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
invokestatic sun.font.Decoration$DecorationImpl.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 18
17: iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
aload 2
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
invokestatic sun.font.Decoration$DecorationImpl.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/font/Decoration$DecorationImpl;
0 19 1 rhs Ljava/lang/Object;
5 19 2 other Lsun/font/Decoration$DecorationImpl;
Exception table:
from to target type
5 6 7 Class java.lang.ClassCastException
MethodParameters:
Name Flags
rhs
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
ifeq 3
2: iload 1
iconst_2
ior
istore 1
3: StackMap locals: int
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
ifeq 5
4: iload 1
iconst_4
ior
istore 1
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnull 7
6: iload 1
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
invokevirtual java.lang.Object.hashCode:()I
iadd
istore 1
7: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/font/Decoration$DecorationImpl;
1 8 1 hc I
private float getUnderlineMaxY(sun.font.CoreMetrics);
descriptor: (Lsun/font/CoreMetrics;)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: fconst_0
fstore 2
start local 2 1: aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnull 5
2: aload 1
getfield sun.font.CoreMetrics.underlineOffset:F
fstore 3
start local 3 3: fload 3
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
aload 1
getfield sun.font.CoreMetrics.underlineThickness:F
invokevirtual sun.font.Underline.getLowerDrawLimit:(F)F
fadd
fstore 3
4: fload 2
fload 3
invokestatic java.lang.Math.max:(FF)F
fstore 2
end local 3 5: StackMap locals: float
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnull 9
6: aload 1
getfield sun.font.CoreMetrics.underlineOffset:F
fstore 3
start local 3 7: fload 3
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
aload 1
getfield sun.font.CoreMetrics.underlineThickness:F
invokevirtual sun.font.Underline.getLowerDrawLimit:(F)F
fadd
fstore 3
8: fload 2
fload 3
invokestatic java.lang.Math.max:(FF)F
fstore 2
end local 3 9: StackMap locals:
StackMap stack:
fload 2
freturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/font/Decoration$DecorationImpl;
0 10 1 cm Lsun/font/CoreMetrics;
1 10 2 maxY F
3 5 3 ulBottom F
7 9 3 ulBottom F
MethodParameters:
Name Flags
cm
private void drawTextAndEmbellishments(sun.font.Decoration$Label, java.awt.Graphics2D, float, float);
descriptor: (Lsun/font/Decoration$Label;Ljava/awt/Graphics2D;FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
aload 2
fload 3
fload 4
invokeinterface sun.font.Decoration$Label.handleDraw:(Ljava/awt/Graphics2D;FF)V
1: aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
ifne 3
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnonnull 3
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
fload 3
fstore 5
start local 5 4: fload 5
aload 1
invokeinterface sun.font.Decoration$Label.getLogicalBounds:()Ljava/awt/geom/Rectangle2D;
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
d2f
fadd
fstore 6
start local 6 5: aload 1
invokeinterface sun.font.Decoration$Label.getCoreMetrics:()Lsun/font/CoreMetrics;
astore 7
start local 7 6: aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
ifeq 12
7: aload 2
invokevirtual java.awt.Graphics2D.getStroke:()Ljava/awt/Stroke;
astore 8
start local 8 8: aload 2
new java.awt.BasicStroke
dup
aload 7
getfield sun.font.CoreMetrics.strikethroughThickness:F
invokespecial java.awt.BasicStroke.<init>:(F)V
invokevirtual java.awt.Graphics2D.setStroke:(Ljava/awt/Stroke;)V
9: fload 4
aload 7
getfield sun.font.CoreMetrics.strikethroughOffset:F
fadd
fstore 9
start local 9 10: aload 2
new java.awt.geom.Line2D$Float
dup
fload 5
fload 9
fload 6
fload 9
invokespecial java.awt.geom.Line2D$Float.<init>:(FFFF)V
invokevirtual java.awt.Graphics2D.draw:(Ljava/awt/Shape;)V
11: aload 2
aload 8
invokevirtual java.awt.Graphics2D.setStroke:(Ljava/awt/Stroke;)V
end local 9 end local 8 12: StackMap locals: float float sun.font.CoreMetrics
StackMap stack:
aload 7
getfield sun.font.CoreMetrics.underlineOffset:F
fstore 8
start local 8 13: aload 7
getfield sun.font.CoreMetrics.underlineThickness:F
fstore 9
start local 9 14: aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnull 16
15: aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
aload 2
fload 9
fload 5
fload 6
fload 4
fload 8
fadd
invokevirtual sun.font.Underline.drawUnderline:(Ljava/awt/Graphics2D;FFFF)V
16: StackMap locals: float float
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnull 18
17: aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
aload 2
fload 9
fload 5
fload 6
fload 4
fload 8
fadd
invokevirtual sun.font.Underline.drawUnderline:(Ljava/awt/Graphics2D;FFFF)V
18: StackMap locals:
StackMap stack:
return
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 19 0 this Lsun/font/Decoration$DecorationImpl;
0 19 1 label Lsun/font/Decoration$Label;
0 19 2 g2d Ljava/awt/Graphics2D;
0 19 3 x F
0 19 4 y F
4 19 5 x1 F
5 19 6 x2 F
6 19 7 cm Lsun/font/CoreMetrics;
8 12 8 savedStroke Ljava/awt/Stroke;
10 12 9 strikeY F
13 19 8 ulOffset F
14 19 9 ulThickness F
MethodParameters:
Name Flags
label
g2d
x
y
public void drawTextAndDecorations(sun.font.Decoration$Label, java.awt.Graphics2D, float, float);
descriptor: (Lsun/font/Decoration$Label;Ljava/awt/Graphics2D;FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
ifnonnull 3
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
ifnonnull 3
aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
ifne 3
1: aload 0
aload 1
aload 2
fload 3
fload 4
invokevirtual sun.font.Decoration$DecorationImpl.drawTextAndEmbellishments:(Lsun/font/Decoration$Label;Ljava/awt/Graphics2D;FF)V
2: goto 40
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.awt.Graphics2D.getPaint:()Ljava/awt/Paint;
astore 5
start local 5 4: aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
ifeq 24
5: aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
ifnonnull 6
aload 5
goto 7
StackMap locals: java.awt.Paint
StackMap stack:
6: aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
StackMap locals:
StackMap stack: java.awt.Paint
7: astore 7
start local 7 8: aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
ifnonnull 22
9: aload 7
instanceof java.awt.Color
ifeq 20
10: aload 7
checkcast java.awt.Color
astore 8
start local 8 11: bipush 33
aload 8
invokevirtual java.awt.Color.getRed:()I
imul
12: bipush 53
aload 8
invokevirtual java.awt.Color.getGreen:()I
imul
13: iadd
14: bipush 14
aload 8
invokevirtual java.awt.Color.getBlue:()I
imul
15: iadd
istore 9
start local 9 16: iload 9
sipush 18500
if_icmple 17
getstatic java.awt.Color.BLACK:Ljava/awt/Color;
goto 18
StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label java.awt.Graphics2D float float java.awt.Paint top java.awt.Paint java.awt.Color int
StackMap stack:
17: getstatic java.awt.Color.WHITE:Ljava/awt/Color;
StackMap locals:
StackMap stack: java.awt.Color
18: astore 6
end local 9 end local 8 start local 6 19: goto 28
end local 6 20: StackMap locals:
StackMap stack:
getstatic java.awt.Color.WHITE:Ljava/awt/Color;
astore 6
start local 6 21: goto 28
end local 6 22: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
astore 6
start local 6 23: goto 28
end local 7 end local 6 24: StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label java.awt.Graphics2D float float java.awt.Paint
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
ifnonnull 25
aload 5
goto 26
StackMap locals:
StackMap stack:
25: aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
StackMap locals:
StackMap stack: java.awt.Paint
26: astore 6
start local 6 27: aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
astore 7
start local 7 28: StackMap locals: java.awt.Paint java.awt.Paint
StackMap stack:
aload 7
ifnull 37
29: aload 1
invokeinterface sun.font.Decoration$Label.getLogicalBounds:()Ljava/awt/geom/Rectangle2D;
astore 8
start local 8 30: new java.awt.geom.Rectangle2D$Float
dup
fload 3
aload 8
invokevirtual java.awt.geom.Rectangle2D.getX:()D
d2f
fadd
31: fload 4
aload 8
invokevirtual java.awt.geom.Rectangle2D.getY:()D
d2f
fadd
32: aload 8
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
d2f
33: aload 8
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
d2f
34: invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
astore 8
35: aload 2
aload 7
invokevirtual java.awt.Graphics2D.setPaint:(Ljava/awt/Paint;)V
36: aload 2
aload 8
invokevirtual java.awt.Graphics2D.fill:(Ljava/awt/Shape;)V
end local 8 37: StackMap locals:
StackMap stack:
aload 2
aload 6
invokevirtual java.awt.Graphics2D.setPaint:(Ljava/awt/Paint;)V
38: aload 0
aload 1
aload 2
fload 3
fload 4
invokevirtual sun.font.Decoration$DecorationImpl.drawTextAndEmbellishments:(Lsun/font/Decoration$Label;Ljava/awt/Graphics2D;FF)V
39: aload 2
aload 5
invokevirtual java.awt.Graphics2D.setPaint:(Ljava/awt/Paint;)V
end local 7 end local 6 end local 5 40: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/font/Decoration$DecorationImpl;
0 41 1 label Lsun/font/Decoration$Label;
0 41 2 g2d Ljava/awt/Graphics2D;
0 41 3 x F
0 41 4 y F
4 40 5 savedPaint Ljava/awt/Paint;
19 20 6 foreground Ljava/awt/Paint;
21 22 6 foreground Ljava/awt/Paint;
23 24 6 foreground Ljava/awt/Paint;
27 40 6 foreground Ljava/awt/Paint;
8 24 7 background Ljava/awt/Paint;
28 40 7 background Ljava/awt/Paint;
11 19 8 bg Ljava/awt/Color;
16 19 9 brightness I
30 37 8 bgArea Ljava/awt/geom/Rectangle2D;
MethodParameters:
Name Flags
label
g2d
x
y
public java.awt.geom.Rectangle2D getVisualBounds(sun.font.Decoration$Label);
descriptor: (Lsun/font/Decoration$Label;)Ljava/awt/geom/Rectangle2D;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface sun.font.Decoration$Label.handleGetVisualBounds:()Ljava/awt/geom/Rectangle2D;
astore 2
start local 2 1: aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
ifne 3
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
ifnonnull 3
2: aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnonnull 3
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnull 13
3: StackMap locals: java.awt.geom.Rectangle2D
StackMap stack:
fconst_0
fstore 3
start local 3 4: aload 1
invokeinterface sun.font.Decoration$Label.getLogicalBounds:()Ljava/awt/geom/Rectangle2D;
astore 4
start local 4 5: fconst_0
fstore 5
start local 5 6: fconst_0
fstore 6
start local 6 7: aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
ifne 8
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
ifnull 10
8: StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label java.awt.geom.Rectangle2D float java.awt.geom.Rectangle2D float float
StackMap stack:
aload 4
invokevirtual java.awt.geom.Rectangle2D.getY:()D
d2f
fstore 5
9: fload 5
aload 4
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
d2f
fadd
fstore 6
10: StackMap locals:
StackMap stack:
fload 6
aload 0
aload 1
invokeinterface sun.font.Decoration$Label.getCoreMetrics:()Lsun/font/CoreMetrics;
invokevirtual sun.font.Decoration$DecorationImpl.getUnderlineMaxY:(Lsun/font/CoreMetrics;)F
invokestatic java.lang.Math.max:(FF)F
fstore 6
11: new java.awt.geom.Rectangle2D$Float
dup
fload 3
fload 5
aload 4
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
d2f
fload 6
fload 5
fsub
invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
astore 7
start local 7 12: aload 2
aload 7
invokevirtual java.awt.geom.Rectangle2D.add:(Ljava/awt/geom/Rectangle2D;)V
end local 7 end local 6 end local 5 end local 4 end local 3 13: StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label java.awt.geom.Rectangle2D
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/font/Decoration$DecorationImpl;
0 14 1 label Lsun/font/Decoration$Label;
1 14 2 visBounds Ljava/awt/geom/Rectangle2D;
4 13 3 minX F
5 13 4 lb Ljava/awt/geom/Rectangle2D;
6 13 5 minY F
7 13 6 maxY F
12 13 7 ab Ljava/awt/geom/Rectangle2D;
MethodParameters:
Name Flags
label
java.awt.Shape getOutline(sun.font.Decoration$Label, float, float);
descriptor: (Lsun/font/Decoration$Label;FF)Ljava/awt/Shape;
flags: (0x0000)
Code:
stack=6, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
ifne 2
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnonnull 2
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnonnull 2
1: aload 1
fload 2
fload 3
invokeinterface sun.font.Decoration$Label.handleGetOutline:(FF)Ljava/awt/Shape;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface sun.font.Decoration$Label.getCoreMetrics:()Lsun/font/CoreMetrics;
astore 4
start local 4 3: aload 4
getfield sun.font.CoreMetrics.underlineThickness:F
fstore 5
start local 5 4: aload 1
invokeinterface sun.font.Decoration$Label.getLogicalBounds:()Ljava/awt/geom/Rectangle2D;
astore 6
start local 6 5: fload 2
fstore 7
start local 7 6: fload 7
aload 6
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
d2f
fadd
fstore 8
start local 8 7: aconst_null
astore 9
start local 9 8: aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnull 11
9: aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
fload 5
fload 7
fload 8
fload 3
invokevirtual sun.font.Underline.getUnderlineShape:(FFFF)Ljava/awt/Shape;
astore 10
start local 10 10: new java.awt.geom.Area
dup
aload 10
invokespecial java.awt.geom.Area.<init>:(Ljava/awt/Shape;)V
astore 9
end local 10 11: StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label float float sun.font.CoreMetrics float java.awt.geom.Rectangle2D float float java.awt.geom.Area
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
ifeq 20
12: new java.awt.BasicStroke
dup
aload 4
getfield sun.font.CoreMetrics.strikethroughThickness:F
invokespecial java.awt.BasicStroke.<init>:(F)V
astore 10
start local 10 13: fload 3
aload 4
getfield sun.font.CoreMetrics.strikethroughOffset:F
fadd
fstore 11
start local 11 14: new java.awt.geom.Line2D$Float
dup
fload 7
fload 11
fload 8
fload 11
invokespecial java.awt.geom.Line2D$Float.<init>:(FFFF)V
astore 12
start local 12 15: new java.awt.geom.Area
dup
aload 10
aload 12
invokeinterface java.awt.Stroke.createStrokedShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
invokespecial java.awt.geom.Area.<init>:(Ljava/awt/Shape;)V
astore 13
start local 13 16: aload 9
ifnonnull 19
17: aload 13
astore 9
18: goto 20
19: StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label float float sun.font.CoreMetrics float java.awt.geom.Rectangle2D float float java.awt.geom.Area java.awt.Stroke float java.awt.geom.Line2D java.awt.geom.Area
StackMap stack:
aload 9
aload 13
invokevirtual java.awt.geom.Area.add:(Ljava/awt/geom/Area;)V
end local 13 end local 12 end local 11 end local 10 20: StackMap locals: sun.font.Decoration$DecorationImpl sun.font.Decoration$Label float float sun.font.CoreMetrics float java.awt.geom.Rectangle2D float float java.awt.geom.Area
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnull 27
21: aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
fload 5
fload 7
fload 8
fload 3
invokevirtual sun.font.Underline.getUnderlineShape:(FFFF)Ljava/awt/Shape;
astore 10
start local 10 22: new java.awt.geom.Area
dup
aload 10
invokespecial java.awt.geom.Area.<init>:(Ljava/awt/Shape;)V
astore 11
start local 11 23: aload 9
ifnonnull 26
24: aload 11
astore 9
25: goto 27
26: StackMap locals: java.awt.Shape java.awt.geom.Area
StackMap stack:
aload 9
aload 11
invokevirtual java.awt.geom.Area.add:(Ljava/awt/geom/Area;)V
end local 11 end local 10 27: StackMap locals:
StackMap stack:
aload 9
new java.awt.geom.Area
dup
aload 1
fload 2
fload 3
invokeinterface sun.font.Decoration$Label.handleGetOutline:(FF)Ljava/awt/Shape;
invokespecial java.awt.geom.Area.<init>:(Ljava/awt/Shape;)V
invokevirtual java.awt.geom.Area.add:(Ljava/awt/geom/Area;)V
28: new java.awt.geom.GeneralPath
dup
aload 9
invokespecial java.awt.geom.GeneralPath.<init>:(Ljava/awt/Shape;)V
areturn
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 29 0 this Lsun/font/Decoration$DecorationImpl;
0 29 1 label Lsun/font/Decoration$Label;
0 29 2 x F
0 29 3 y F
3 29 4 cm Lsun/font/CoreMetrics;
4 29 5 ulThickness F
5 29 6 lb Ljava/awt/geom/Rectangle2D;
6 29 7 x1 F
7 29 8 x2 F
8 29 9 area Ljava/awt/geom/Area;
10 11 10 ul Ljava/awt/Shape;
13 20 10 stStroke Ljava/awt/Stroke;
14 20 11 shiftY F
15 20 12 line Ljava/awt/geom/Line2D;
16 20 13 slArea Ljava/awt/geom/Area;
22 27 10 ul Ljava/awt/Shape;
23 27 11 ulArea Ljava/awt/geom/Area;
MethodParameters:
Name Flags
label
x
y
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokespecial java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
2: aload 1
ldc "["
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
3: aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
ifnull 4
aload 1
new java.lang.StringBuilder
dup
ldc "fgPaint: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.font.Decoration$DecorationImpl.fgPaint:Ljava/awt/Paint;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
4: StackMap locals: java.lang.StringBuffer
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
ifnull 5
aload 1
new java.lang.StringBuilder
dup
ldc " bgPaint: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.font.Decoration$DecorationImpl.bgPaint:Ljava/awt/Paint;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.swapColors:Z
ifeq 6
aload 1
ldc " swapColors: true"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.strikethrough:Z
ifeq 7
aload 1
ldc " strikethrough: true"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
ifnull 8
aload 1
new java.lang.StringBuilder
dup
ldc " stdUnderline: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.font.Decoration$DecorationImpl.stdUnderline:Lsun/font/Underline;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
ifnull 9
aload 1
new java.lang.StringBuilder
dup
ldc " imUnderline: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.font.Decoration$DecorationImpl.imUnderline:Lsun/font/Underline;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
9: StackMap locals:
StackMap stack:
aload 1
ldc "]"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
10: aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/font/Decoration$DecorationImpl;
1 11 1 buf Ljava/lang/StringBuffer;
}
SourceFile: "Decoration.java"
NestHost: sun.font.Decoration
InnerClasses:
public Float = java.awt.geom.Line2D$Float of java.awt.geom.Line2D
public Float = java.awt.geom.Rectangle2D$Float of java.awt.geom.Rectangle2D
private final DecorationImpl = sun.font.Decoration$DecorationImpl of sun.font.Decoration
public abstract Label = sun.font.Decoration$Label of sun.font.Decoration