final class sun.font.Underline$StandardUnderline extends sun.font.Underline
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.font.Underline$StandardUnderline
super_class: sun.font.Underline
{
private float shift;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float thicknessMultiplier;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float[] dashPattern;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private boolean useThickness;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.awt.BasicStroke cachedStroke;
descriptor: Ljava/awt/BasicStroke;
flags: (0x0002) ACC_PRIVATE
void <init>(float, float, float[], boolean);
descriptor: (FF[FZ)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial sun.font.Underline.<init>:()V
1: aload 0
fload 1
putfield sun.font.Underline$StandardUnderline.shift:F
2: aload 0
fload 2
putfield sun.font.Underline$StandardUnderline.thicknessMultiplier:F
3: aload 0
aload 3
putfield sun.font.Underline$StandardUnderline.dashPattern:[F
4: aload 0
iload 4
putfield sun.font.Underline$StandardUnderline.useThickness:Z
5: aload 0
aconst_null
putfield sun.font.Underline$StandardUnderline.cachedStroke:Ljava/awt/BasicStroke;
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 this Lsun/font/Underline$StandardUnderline;
0 7 1 shift F
0 7 2 thicknessMultiplier F
0 7 3 dashPattern [F
0 7 4 useThickness Z
MethodParameters:
Name Flags
shift
thicknessMultiplier
dashPattern
useThickness
private java.awt.BasicStroke createStroke(float);
descriptor: (F)Ljava/awt/BasicStroke;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.Underline$StandardUnderline.dashPattern:[F
ifnonnull 2
1: new java.awt.BasicStroke
dup
fload 1
invokespecial java.awt.BasicStroke.<init>:(F)V
areturn
2: StackMap locals:
StackMap stack:
new java.awt.BasicStroke
dup
fload 1
3: iconst_0
4: iconst_0
5: ldc 10.0
6: aload 0
getfield sun.font.Underline$StandardUnderline.dashPattern:[F
7: fconst_0
8: invokespecial java.awt.BasicStroke.<init>:(FIIF[FF)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/font/Underline$StandardUnderline;
0 9 1 lineThickness F
MethodParameters:
Name Flags
lineThickness
private float getLineThickness(float);
descriptor: (F)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.Underline$StandardUnderline.useThickness:Z
ifeq 2
1: fload 1
aload 0
getfield sun.font.Underline$StandardUnderline.thicknessMultiplier:F
fmul
freturn
2: StackMap locals:
StackMap stack:
fconst_1
aload 0
getfield sun.font.Underline$StandardUnderline.thicknessMultiplier:F
fmul
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/Underline$StandardUnderline;
0 3 1 thickness F
MethodParameters:
Name Flags
thickness
private java.awt.Stroke getStroke(float);
descriptor: (F)Ljava/awt/Stroke;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
fload 1
invokevirtual sun.font.Underline$StandardUnderline.getLineThickness:(F)F
fstore 2
start local 2 1: aload 0
getfield sun.font.Underline$StandardUnderline.cachedStroke:Ljava/awt/BasicStroke;
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 3
invokevirtual java.awt.BasicStroke.getLineWidth:()F
fload 2
fcmpl
ifeq 6
4: StackMap locals: float java.awt.BasicStroke
StackMap stack:
aload 0
fload 2
invokevirtual sun.font.Underline$StandardUnderline.createStroke:(F)Ljava/awt/BasicStroke;
astore 3
5: aload 0
aload 3
putfield sun.font.Underline$StandardUnderline.cachedStroke:Ljava/awt/BasicStroke;
6: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/font/Underline$StandardUnderline;
0 7 1 thickness F
1 7 2 lineThickness F
2 7 3 stroke Ljava/awt/BasicStroke;
MethodParameters:
Name Flags
thickness
void drawUnderline(java.awt.Graphics2D, float, float, float, float);
descriptor: (Ljava/awt/Graphics2D;FFFF)V
flags: (0x0000)
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual java.awt.Graphics2D.getStroke:()Ljava/awt/Stroke;
astore 6
start local 6 1: aload 1
aload 0
fload 2
invokevirtual sun.font.Underline$StandardUnderline.getStroke:(F)Ljava/awt/Stroke;
invokevirtual java.awt.Graphics2D.setStroke:(Ljava/awt/Stroke;)V
2: aload 1
new java.awt.geom.Line2D$Float
dup
fload 3
fload 5
aload 0
getfield sun.font.Underline$StandardUnderline.shift:F
fadd
fload 4
fload 5
aload 0
getfield sun.font.Underline$StandardUnderline.shift:F
fadd
invokespecial java.awt.geom.Line2D$Float.<init>:(FFFF)V
invokevirtual java.awt.Graphics2D.draw:(Ljava/awt/Shape;)V
3: aload 1
aload 6
invokevirtual java.awt.Graphics2D.setStroke:(Ljava/awt/Stroke;)V
4: 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 5 0 this Lsun/font/Underline$StandardUnderline;
0 5 1 g2d Ljava/awt/Graphics2D;
0 5 2 thickness F
0 5 3 x1 F
0 5 4 x2 F
0 5 5 y F
1 5 6 saveStroke Ljava/awt/Stroke;
MethodParameters:
Name Flags
g2d
thickness
x1
x2
y
float getLowerDrawLimit(float);
descriptor: (F)F
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.Underline$StandardUnderline.shift:F
aload 0
fload 1
invokevirtual sun.font.Underline$StandardUnderline.getLineThickness:(F)F
fadd
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/Underline$StandardUnderline;
0 1 1 thickness F
MethodParameters:
Name Flags
thickness
java.awt.Shape getUnderlineShape(float, float, float, float);
descriptor: (FFFF)Ljava/awt/Shape;
flags: (0x0000)
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
fload 1
invokevirtual sun.font.Underline$StandardUnderline.getStroke:(F)Ljava/awt/Stroke;
astore 5
start local 5 1: new java.awt.geom.Line2D$Float
dup
fload 2
fload 4
aload 0
getfield sun.font.Underline$StandardUnderline.shift:F
fadd
fload 3
fload 4
aload 0
getfield sun.font.Underline$StandardUnderline.shift:F
fadd
invokespecial java.awt.geom.Line2D$Float.<init>:(FFFF)V
astore 6
start local 6 2: aload 5
aload 6
invokeinterface java.awt.Stroke.createStrokedShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
areturn
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 3 0 this Lsun/font/Underline$StandardUnderline;
0 3 1 thickness F
0 3 2 x1 F
0 3 3 x2 F
0 3 4 y F
1 3 5 ulStroke Ljava/awt/Stroke;
2 3 6 line Ljava/awt/geom/Line2D;
MethodParameters:
Name Flags
thickness
x1
x2
y
}
SourceFile: "Underline.java"
NestHost: sun.font.Underline
InnerClasses:
public Float = java.awt.geom.Line2D$Float of java.awt.geom.Line2D
private final StandardUnderline = sun.font.Underline$StandardUnderline of sun.font.Underline