final class java.awt.font.TextLine
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.awt.font.TextLine
super_class: java.lang.Object
{
private sun.font.TextLineComponent[] fComponents;
descriptor: [Lsun/font/TextLineComponent;
flags: (0x0002) ACC_PRIVATE
private float[] fBaselineOffsets;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private int[] fComponentVisualOrder;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private float[] locs;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private char[] fChars;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private int fCharsStart;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int fCharsLimit;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int[] fCharVisualOrder;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] fCharLogicalOrder;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private byte[] fCharLevels;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private boolean fIsDirectionLTR;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private sun.font.LayoutPathImpl lp;
descriptor: Lsun/font/LayoutPathImpl;
flags: (0x0002) ACC_PRIVATE
private boolean isSimple;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.awt.Rectangle pixelBounds;
descriptor: Ljava/awt/Rectangle;
flags: (0x0002) ACC_PRIVATE
private java.awt.font.FontRenderContext frc;
descriptor: Ljava/awt/font/FontRenderContext;
flags: (0x0002) ACC_PRIVATE
private java.awt.font.TextLine$TextLineMetrics fMetrics;
descriptor: Ljava/awt/font/TextLine$TextLineMetrics;
flags: (0x0002) ACC_PRIVATE
private static java.awt.font.TextLine$Function fgPosAdvF;
descriptor: Ljava/awt/font/TextLine$Function;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.awt.font.TextLine$Function fgAdvanceF;
descriptor: Ljava/awt/font/TextLine$Function;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.awt.font.TextLine$Function fgXPositionF;
descriptor: Ljava/awt/font/TextLine$Function;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.awt.font.TextLine$Function fgYPositionF;
descriptor: Ljava/awt/font/TextLine$Function;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 487
new java.awt.font.TextLine$1
dup
invokespecial java.awt.font.TextLine$1.<init>:()V
putstatic java.awt.font.TextLine.fgPosAdvF:Ljava/awt/font/TextLine$Function;
1: .line 498
new java.awt.font.TextLine$2
dup
invokespecial java.awt.font.TextLine$2.<init>:()V
putstatic java.awt.font.TextLine.fgAdvanceF:Ljava/awt/font/TextLine$Function;
2: .line 509
new java.awt.font.TextLine$3
dup
invokespecial java.awt.font.TextLine$3.<init>:()V
putstatic java.awt.font.TextLine.fgXPositionF:Ljava/awt/font/TextLine$Function;
3: .line 521
new java.awt.font.TextLine$4
dup
invokespecial java.awt.font.TextLine$4.<init>:()V
putstatic java.awt.font.TextLine.fgYPositionF:Ljava/awt/font/TextLine$Function;
4: .line 535
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.awt.font.FontRenderContext, sun.font.TextLineComponent[], float[], char[], int, int, int[], byte[], boolean);
descriptor: (Ljava/awt/font/FontRenderContext;[Lsun/font/TextLineComponent;[F[CII[I[BZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=11, args_size=10
start local 0 // java.awt.font.TextLine this
start local 1 // java.awt.font.FontRenderContext frc
start local 2 // sun.font.TextLineComponent[] components
start local 3 // float[] baselineOffsets
start local 4 // char[] chars
start local 5 // int charsStart
start local 6 // int charsLimit
start local 7 // int[] charLogicalOrder
start local 8 // byte[] charLevels
start local 9 // boolean isDirectionLTR
0: .line 104
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 102
aload 0 /* this */
aconst_null
putfield java.awt.font.TextLine.fMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
2: .line 114
aload 2 /* components */
3: .line 115
aload 7 /* charLogicalOrder */
4: .line 114
invokestatic java.awt.font.TextLine.computeComponentOrder:([Lsun/font/TextLineComponent;[I)[I
astore 10 /* componentVisualOrder */
start local 10 // int[] componentVisualOrder
5: .line 117
aload 0 /* this */
aload 1 /* frc */
putfield java.awt.font.TextLine.frc:Ljava/awt/font/FontRenderContext;
6: .line 118
aload 0 /* this */
aload 2 /* components */
putfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
7: .line 119
aload 0 /* this */
aload 3 /* baselineOffsets */
putfield java.awt.font.TextLine.fBaselineOffsets:[F
8: .line 120
aload 0 /* this */
aload 10 /* componentVisualOrder */
putfield java.awt.font.TextLine.fComponentVisualOrder:[I
9: .line 121
aload 0 /* this */
aload 4 /* chars */
putfield java.awt.font.TextLine.fChars:[C
10: .line 122
aload 0 /* this */
iload 5 /* charsStart */
putfield java.awt.font.TextLine.fCharsStart:I
11: .line 123
aload 0 /* this */
iload 6 /* charsLimit */
putfield java.awt.font.TextLine.fCharsLimit:I
12: .line 124
aload 0 /* this */
aload 7 /* charLogicalOrder */
putfield java.awt.font.TextLine.fCharLogicalOrder:[I
13: .line 125
aload 0 /* this */
aload 8 /* charLevels */
putfield java.awt.font.TextLine.fCharLevels:[B
14: .line 126
aload 0 /* this */
iload 9 /* isDirectionLTR */
putfield java.awt.font.TextLine.fIsDirectionLTR:Z
15: .line 127
aload 0 /* this */
invokevirtual java.awt.font.TextLine.checkCtorArgs:()V
16: .line 129
aload 0 /* this */
invokevirtual java.awt.font.TextLine.init:()V
17: .line 130
return
end local 10 // int[] componentVisualOrder
end local 9 // boolean isDirectionLTR
end local 8 // byte[] charLevels
end local 7 // int[] charLogicalOrder
end local 6 // int charsLimit
end local 5 // int charsStart
end local 4 // char[] chars
end local 3 // float[] baselineOffsets
end local 2 // sun.font.TextLineComponent[] components
end local 1 // java.awt.font.FontRenderContext frc
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/awt/font/TextLine;
0 18 1 frc Ljava/awt/font/FontRenderContext;
0 18 2 components [Lsun/font/TextLineComponent;
0 18 3 baselineOffsets [F
0 18 4 chars [C
0 18 5 charsStart I
0 18 6 charsLimit I
0 18 7 charLogicalOrder [I
0 18 8 charLevels [B
0 18 9 isDirectionLTR Z
5 18 10 componentVisualOrder [I
MethodParameters:
Name Flags
frc
components
baselineOffsets
chars
charsStart
charsLimit
charLogicalOrder
charLevels
isDirectionLTR
private void checkCtorArgs();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 134
iconst_0
istore 1 /* checkCharCount */
start local 1 // int checkCharCount
1: .line 135
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 5
3: .line 136
StackMap locals: int int
StackMap stack:
iload 1 /* checkCharCount */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 2 /* i */
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 1 /* checkCharCount */
4: .line 135
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 3
end local 2 // int i
6: .line 139
iload 1 /* checkCharCount */
aload 0 /* this */
invokevirtual java.awt.font.TextLine.characterCount:()I
if_icmpeq 8
7: .line 140
new java.lang.IllegalArgumentException
dup
ldc "Invalid TextLine! char count is different from sum of char counts of components."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: .line 144
StackMap locals:
StackMap stack:
return
end local 1 // int checkCharCount
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/awt/font/TextLine;
1 9 1 checkCharCount I
2 6 2 i I
private void init();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=31, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 151
fconst_0
fstore 1 /* ascent */
start local 1 // float ascent
1: .line 152
fconst_0
fstore 2 /* descent */
start local 2 // float descent
2: .line 153
fconst_0
fstore 3 /* leading */
start local 3 // float leading
3: .line 154
fconst_0
fstore 4 /* advance */
start local 4 // float advance
4: .line 157
fconst_0
fstore 5 /* maxGraphicHeight */
start local 5 // float maxGraphicHeight
5: .line 158
fconst_0
fstore 6 /* maxGraphicHeightWithLeading */
start local 6 // float maxGraphicHeightWithLeading
6: .line 162
iconst_0
istore 8 /* fitTopAndBottomGraphics */
start local 8 // boolean fitTopAndBottomGraphics
7: .line 164
aload 0 /* this */
iconst_1
putfield java.awt.font.TextLine.isSimple:Z
8: .line 166
iconst_0
istore 9 /* i */
start local 9 // int i
9: goto 29
10: .line 167
StackMap locals: java.awt.font.TextLine float float float float float float top int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 9 /* i */
aaload
astore 7 /* tlc */
start local 7 // sun.font.TextLineComponent tlc
11: .line 169
aload 0 /* this */
dup
getfield java.awt.font.TextLine.isSimple:Z
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.isSimple:()Z
iand
putfield java.awt.font.TextLine.isSimple:Z
12: .line 171
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getCoreMetrics:()Lsun/font/CoreMetrics;
astore 10 /* cm */
start local 10 // sun.font.CoreMetrics cm
13: .line 173
aload 10 /* cm */
getfield sun.font.CoreMetrics.baselineIndex:I
i2b
istore 11 /* baseline */
start local 11 // byte baseline
14: .line 175
iload 11 /* baseline */
iflt 21
15: .line 176
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
iload 11 /* baseline */
faload
fstore 12 /* baselineOffset */
start local 12 // float baselineOffset
16: .line 178
fload 1 /* ascent */
fload 12 /* baselineOffset */
fneg
aload 10 /* cm */
getfield sun.font.CoreMetrics.ascent:F
fadd
invokestatic java.lang.Math.max:(FF)F
fstore 1 /* ascent */
17: .line 180
fload 12 /* baselineOffset */
aload 10 /* cm */
getfield sun.font.CoreMetrics.descent:F
fadd
fstore 13 /* gd */
start local 13 // float gd
18: .line 181
fload 2 /* descent */
fload 13 /* gd */
invokestatic java.lang.Math.max:(FF)F
fstore 2 /* descent */
19: .line 183
fload 3 /* leading */
fload 13 /* gd */
aload 10 /* cm */
getfield sun.font.CoreMetrics.leading:F
fadd
invokestatic java.lang.Math.max:(FF)F
fstore 3 /* leading */
end local 13 // float gd
end local 12 // float baselineOffset
20: .line 184
goto 28
21: .line 186
StackMap locals: java.awt.font.TextLine float float float float float float sun.font.TextLineComponent int int sun.font.CoreMetrics int
StackMap stack:
iconst_1
istore 8 /* fitTopAndBottomGraphics */
22: .line 187
aload 10 /* cm */
getfield sun.font.CoreMetrics.ascent:F
aload 10 /* cm */
getfield sun.font.CoreMetrics.descent:F
fadd
fstore 12 /* graphicHeight */
start local 12 // float graphicHeight
23: .line 188
fload 12 /* graphicHeight */
aload 10 /* cm */
getfield sun.font.CoreMetrics.leading:F
fadd
fstore 13 /* graphicHeightWithLeading */
start local 13 // float graphicHeightWithLeading
24: .line 189
fload 5 /* maxGraphicHeight */
fload 12 /* graphicHeight */
invokestatic java.lang.Math.max:(FF)F
fstore 5 /* maxGraphicHeight */
25: .line 190
fload 6 /* maxGraphicHeightWithLeading */
26: .line 191
fload 13 /* graphicHeightWithLeading */
27: .line 190
invokestatic java.lang.Math.max:(FF)F
fstore 6 /* maxGraphicHeightWithLeading */
end local 13 // float graphicHeightWithLeading
end local 12 // float graphicHeight
end local 11 // byte baseline
end local 10 // sun.font.CoreMetrics cm
28: .line 166
StackMap locals:
StackMap stack:
iinc 9 /* i */ 1
end local 7 // sun.font.TextLineComponent tlc
StackMap locals: java.awt.font.TextLine float float float float float float top int int
StackMap stack:
29: iload 9 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 10
end local 9 // int i
30: .line 195
iload 8 /* fitTopAndBottomGraphics */
ifeq 35
31: .line 196
fload 5 /* maxGraphicHeight */
fload 1 /* ascent */
fload 2 /* descent */
fadd
fcmpl
ifle 33
32: .line 197
fload 5 /* maxGraphicHeight */
fload 1 /* ascent */
fsub
fstore 2 /* descent */
33: .line 199
StackMap locals:
StackMap stack:
fload 6 /* maxGraphicHeightWithLeading */
fload 1 /* ascent */
fload 3 /* leading */
fadd
fcmpl
ifle 35
34: .line 200
fload 6 /* maxGraphicHeightWithLeading */
fload 1 /* ascent */
fsub
fstore 3 /* leading */
35: .line 204
StackMap locals:
StackMap stack:
fload 3 /* leading */
fload 2 /* descent */
fsub
fstore 3 /* leading */
36: .line 209
iload 8 /* fitTopAndBottomGraphics */
ifeq 44
37: .line 212
aload 0 /* this */
iconst_5
newarray 6
dup
iconst_0
38: .line 213
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
iconst_0
faload
fastore
dup
iconst_1
39: .line 214
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
iconst_1
faload
fastore
dup
iconst_2
40: .line 215
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
iconst_2
faload
fastore
dup
iconst_3
41: .line 216
fload 2 /* descent */
fastore
dup
iconst_4
42: .line 217
fload 1 /* ascent */
fneg
fastore
43: .line 212
putfield java.awt.font.TextLine.fBaselineOffsets:[F
44: .line 221
StackMap locals:
StackMap stack:
fconst_0
fstore 9 /* x */
start local 9 // float x
45: .line 222
fconst_0
fstore 10 /* y */
start local 10 // float y
46: .line 223
aconst_null
astore 11 /* pcm */
start local 11 // sun.font.CoreMetrics pcm
47: .line 225
iconst_0
istore 12 /* needPath */
start local 12 // boolean needPath
48: .line 226
aload 0 /* this */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
iconst_2
imul
iconst_2
iadd
newarray 6
putfield java.awt.font.TextLine.locs:[F
49: .line 228
iconst_0
istore 13 /* i */
start local 13 // int i
50: iconst_0
istore 14 /* n */
start local 14 // int n
51: goto 86
52: .line 229
StackMap locals: java.awt.font.TextLine float float float float float float top int float float sun.font.CoreMetrics int int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 13 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 7 /* tlc */
start local 7 // sun.font.TextLineComponent tlc
53: .line 230
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getCoreMetrics:()Lsun/font/CoreMetrics;
astore 15 /* cm */
start local 15 // sun.font.CoreMetrics cm
54: .line 232
aload 11 /* pcm */
ifnull 77
55: .line 233
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
fconst_0
fcmpl
ifne 56
aload 15 /* cm */
getfield sun.font.CoreMetrics.italicAngle:F
fconst_0
fcmpl
ifeq 77
56: .line 234
StackMap locals: java.awt.font.TextLine float float float float float float sun.font.TextLineComponent int float float sun.font.CoreMetrics int int int sun.font.CoreMetrics
StackMap stack:
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
aload 15 /* cm */
getfield sun.font.CoreMetrics.italicAngle:F
fcmpl
ifne 59
57: .line 235
aload 11 /* pcm */
getfield sun.font.CoreMetrics.baselineIndex:I
aload 15 /* cm */
getfield sun.font.CoreMetrics.baselineIndex:I
if_icmpne 59
58: .line 236
aload 11 /* pcm */
getfield sun.font.CoreMetrics.ssOffset:F
aload 15 /* cm */
getfield sun.font.CoreMetrics.ssOffset:F
fcmpl
ifeq 77
59: .line 246
StackMap locals:
StackMap stack:
aload 11 /* pcm */
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
invokevirtual sun.font.CoreMetrics.effectiveBaselineOffset:([F)F
fstore 16 /* pb */
start local 16 // float pb
60: .line 247
fload 16 /* pb */
aload 11 /* pcm */
getfield sun.font.CoreMetrics.ascent:F
fsub
fstore 17 /* pa */
start local 17 // float pa
61: .line 248
fload 16 /* pb */
aload 11 /* pcm */
getfield sun.font.CoreMetrics.descent:F
fadd
fstore 18 /* pd */
start local 18 // float pd
62: .line 251
aload 15 /* cm */
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
invokevirtual sun.font.CoreMetrics.effectiveBaselineOffset:([F)F
fstore 19 /* cb */
start local 19 // float cb
63: .line 252
fload 19 /* cb */
aload 15 /* cm */
getfield sun.font.CoreMetrics.ascent:F
fsub
fstore 20 /* ca */
start local 20 // float ca
64: .line 253
fload 19 /* cb */
aload 15 /* cm */
getfield sun.font.CoreMetrics.descent:F
fadd
fstore 21 /* cd */
start local 21 // float cd
65: .line 256
fload 17 /* pa */
fload 20 /* ca */
invokestatic java.lang.Math.max:(FF)F
fstore 22 /* a */
start local 22 // float a
66: .line 257
fload 18 /* pd */
fload 21 /* cd */
invokestatic java.lang.Math.min:(FF)F
fstore 23 /* d */
start local 23 // float d
67: .line 260
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
fload 16 /* pb */
fload 22 /* a */
fsub
fmul
fstore 24 /* pax */
start local 24 // float pax
68: .line 261
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
fload 16 /* pb */
fload 23 /* d */
fsub
fmul
fstore 25 /* pdx */
start local 25 // float pdx
69: .line 263
aload 15 /* cm */
getfield sun.font.CoreMetrics.italicAngle:F
fload 19 /* cb */
fload 22 /* a */
fsub
fmul
fstore 26 /* cax */
start local 26 // float cax
70: .line 264
aload 15 /* cm */
getfield sun.font.CoreMetrics.italicAngle:F
fload 19 /* cb */
fload 23 /* d */
fsub
fmul
fstore 27 /* cdx */
start local 27 // float cdx
71: .line 267
fload 24 /* pax */
fload 26 /* cax */
fsub
fstore 28 /* dax */
start local 28 // float dax
72: .line 268
fload 25 /* pdx */
fload 27 /* cdx */
fsub
fstore 29 /* ddx */
start local 29 // float ddx
73: .line 269
fload 28 /* dax */
fload 29 /* ddx */
invokestatic java.lang.Math.max:(FF)F
fstore 30 /* dx */
start local 30 // float dx
74: .line 271
fload 9 /* x */
fload 30 /* dx */
fadd
fstore 9 /* x */
75: .line 272
fload 19 /* cb */
fstore 10 /* y */
end local 30 // float dx
end local 29 // float ddx
end local 28 // float dax
end local 27 // float cdx
end local 26 // float cax
end local 25 // float pdx
end local 24 // float pax
end local 23 // float d
end local 22 // float a
end local 21 // float cd
end local 20 // float ca
end local 19 // float cb
end local 18 // float pd
end local 17 // float pa
end local 16 // float pb
76: .line 273
goto 78
77: .line 275
StackMap locals:
StackMap stack:
aload 15 /* cm */
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
invokevirtual sun.font.CoreMetrics.effectiveBaselineOffset:([F)F
fstore 10 /* y */
78: .line 278
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 14 /* n */
fload 9 /* x */
fastore
79: .line 279
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 14 /* n */
iconst_1
iadd
fload 10 /* y */
fastore
80: .line 281
fload 9 /* x */
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getAdvance:()F
fadd
fstore 9 /* x */
81: .line 282
aload 15 /* cm */
astore 11 /* pcm */
82: .line 284
iload 12 /* needPath */
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getBaselineTransform:()Ljava/awt/geom/AffineTransform;
ifnull 83
iconst_1
goto 84
StackMap locals:
StackMap stack: int
83: iconst_0
StackMap locals: java.awt.font.TextLine float float float float float float sun.font.TextLineComponent int float float sun.font.CoreMetrics int int int sun.font.CoreMetrics
StackMap stack: int int
84: ior
istore 12 /* needPath */
end local 15 // sun.font.CoreMetrics cm
85: .line 228
iinc 13 /* i */ 1
iinc 14 /* n */ 2
end local 7 // sun.font.TextLineComponent tlc
StackMap locals: java.awt.font.TextLine float float float float float float top int float float sun.font.CoreMetrics int int int
StackMap stack:
86: iload 13 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 52
end local 14 // int n
end local 13 // int i
87: .line 288
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
fconst_0
fcmpl
ifeq 98
88: .line 289
aload 11 /* pcm */
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
invokevirtual sun.font.CoreMetrics.effectiveBaselineOffset:([F)F
fstore 13 /* pb */
start local 13 // float pb
89: .line 290
aload 11 /* pcm */
getfield sun.font.CoreMetrics.ascent:F
pop
90: .line 291
aload 11 /* pcm */
getfield sun.font.CoreMetrics.descent:F
pop
91: .line 292
fload 13 /* pb */
aload 11 /* pcm */
getfield sun.font.CoreMetrics.ssOffset:F
fadd
fstore 13 /* pb */
92: .line 295
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
fconst_0
fcmpl
ifle 95
93: .line 296
fload 13 /* pb */
aload 11 /* pcm */
getfield sun.font.CoreMetrics.ascent:F
fadd
fstore 14 /* d */
start local 14 // float d
94: .line 297
goto 96
end local 14 // float d
95: .line 298
StackMap locals: java.awt.font.TextLine float float float float float float top int float float sun.font.CoreMetrics int float
StackMap stack:
fload 13 /* pb */
aload 11 /* pcm */
getfield sun.font.CoreMetrics.descent:F
fsub
fstore 14 /* d */
start local 14 // float d
96: .line 300
StackMap locals: float
StackMap stack:
fload 14 /* d */
aload 11 /* pcm */
getfield sun.font.CoreMetrics.italicAngle:F
fmul
fstore 14 /* d */
97: .line 302
fload 9 /* x */
fload 14 /* d */
fadd
fstore 9 /* x */
end local 14 // float d
end local 13 // float pb
98: .line 304
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
arraylength
iconst_2
isub
fload 9 /* x */
fastore
99: .line 308
fload 9 /* x */
fstore 4 /* advance */
100: .line 309
aload 0 /* this */
new java.awt.font.TextLine$TextLineMetrics
dup
fload 1 /* ascent */
fload 2 /* descent */
fload 3 /* leading */
fload 4 /* advance */
invokespecial java.awt.font.TextLine$TextLineMetrics.<init>:(FFFF)V
putfield java.awt.font.TextLine.fMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
101: .line 312
iload 12 /* needPath */
ifeq 131
102: .line 313
aload 0 /* this */
iconst_0
putfield java.awt.font.TextLine.isSimple:Z
103: .line 315
new java.awt.geom.Point2D$Double
dup
invokespecial java.awt.geom.Point2D$Double.<init>:()V
astore 13 /* pt */
start local 13 // java.awt.geom.Point2D$Double pt
104: .line 316
dconst_0
dstore 14 /* tx */
start local 14 // double tx
105: dconst_0
dstore 16 /* ty */
start local 16 // double ty
106: .line 317
new sun.font.LayoutPathImpl$SegmentPathBuilder
dup
invokespecial sun.font.LayoutPathImpl$SegmentPathBuilder.<init>:()V
astore 18 /* builder */
start local 18 // sun.font.LayoutPathImpl$SegmentPathBuilder builder
107: .line 318
aload 18 /* builder */
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iconst_0
faload
f2d
dconst_0
invokevirtual sun.font.LayoutPathImpl$SegmentPathBuilder.moveTo:(DD)V
108: .line 319
iconst_0
istore 19 /* i */
start local 19 // int i
109: iconst_0
istore 20 /* n */
start local 20 // int n
110: goto 124
111: .line 320
StackMap locals: java.awt.font.TextLine float float float float float float top int float float sun.font.CoreMetrics int java.awt.geom.Point2D$Double double double sun.font.LayoutPathImpl$SegmentPathBuilder int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 19 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 7 /* tlc */
start local 7 // sun.font.TextLineComponent tlc
112: .line 321
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getBaselineTransform:()Ljava/awt/geom/AffineTransform;
astore 21 /* at */
start local 21 // java.awt.geom.AffineTransform at
113: .line 322
aload 21 /* at */
ifnull 118
114: .line 323
aload 21 /* at */
invokevirtual java.awt.geom.AffineTransform.getType:()I
iconst_1
iand
ifeq 118
115: .line 324
aload 21 /* at */
invokevirtual java.awt.geom.AffineTransform.getTranslateX:()D
dstore 22 /* dx */
start local 22 // double dx
116: .line 325
aload 21 /* at */
invokevirtual java.awt.geom.AffineTransform.getTranslateY:()D
dstore 24 /* dy */
start local 24 // double dy
117: .line 326
aload 18 /* builder */
dload 14 /* tx */
dload 22 /* dx */
dadd
dup2
dstore 14 /* tx */
dload 16 /* ty */
dload 24 /* dy */
dadd
dup2
dstore 16 /* ty */
invokevirtual sun.font.LayoutPathImpl$SegmentPathBuilder.moveTo:(DD)V
end local 24 // double dy
end local 22 // double dx
118: .line 328
StackMap locals: java.awt.font.TextLine float float float float float float sun.font.TextLineComponent int float float sun.font.CoreMetrics int java.awt.geom.Point2D$Double double double sun.font.LayoutPathImpl$SegmentPathBuilder int int java.awt.geom.AffineTransform
StackMap stack:
aload 13 /* pt */
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 20 /* n */
iconst_2
iadd
faload
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 20 /* n */
faload
fsub
f2d
putfield java.awt.geom.Point2D$Double.x:D
119: .line 329
aload 13 /* pt */
dconst_0
putfield java.awt.geom.Point2D$Double.y:D
120: .line 330
aload 21 /* at */
ifnull 122
121: .line 331
aload 21 /* at */
aload 13 /* pt */
aload 13 /* pt */
invokevirtual java.awt.geom.AffineTransform.deltaTransform:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Ljava/awt/geom/Point2D;
pop
122: .line 333
StackMap locals:
StackMap stack:
aload 18 /* builder */
dload 14 /* tx */
aload 13 /* pt */
getfield java.awt.geom.Point2D$Double.x:D
dadd
dup2
dstore 14 /* tx */
dload 16 /* ty */
aload 13 /* pt */
getfield java.awt.geom.Point2D$Double.y:D
dadd
dup2
dstore 16 /* ty */
invokevirtual sun.font.LayoutPathImpl$SegmentPathBuilder.lineTo:(DD)V
end local 21 // java.awt.geom.AffineTransform at
123: .line 319
iinc 19 /* i */ 1
iinc 20 /* n */ 2
end local 7 // sun.font.TextLineComponent tlc
StackMap locals: java.awt.font.TextLine float float float float float float top int float float sun.font.CoreMetrics int java.awt.geom.Point2D$Double double double sun.font.LayoutPathImpl$SegmentPathBuilder int int
StackMap stack:
124: iload 19 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 111
end local 20 // int n
end local 19 // int i
125: .line 335
aload 0 /* this */
aload 18 /* builder */
invokevirtual sun.font.LayoutPathImpl$SegmentPathBuilder.complete:()Lsun/font/LayoutPathImpl$SegmentPath;
putfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
126: .line 337
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
ifnonnull 131
127: .line 338
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iconst_0
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 7 /* tlc */
start local 7 // sun.font.TextLineComponent tlc
128: .line 339
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getBaselineTransform:()Ljava/awt/geom/AffineTransform;
astore 19 /* at */
start local 19 // java.awt.geom.AffineTransform at
129: .line 340
aload 19 /* at */
ifnull 131
130: .line 341
aload 0 /* this */
new sun.font.LayoutPathImpl$EmptyPath
dup
aload 19 /* at */
invokespecial sun.font.LayoutPathImpl$EmptyPath.<init>:(Ljava/awt/geom/AffineTransform;)V
putfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
end local 19 // java.awt.geom.AffineTransform at
end local 18 // sun.font.LayoutPathImpl$SegmentPathBuilder builder
end local 16 // double ty
end local 14 // double tx
end local 13 // java.awt.geom.Point2D$Double pt
end local 7 // sun.font.TextLineComponent tlc
131: .line 345
StackMap locals: java.awt.font.TextLine float float float float float float top int float float sun.font.CoreMetrics int
StackMap stack:
return
end local 12 // boolean needPath
end local 11 // sun.font.CoreMetrics pcm
end local 10 // float y
end local 9 // float x
end local 8 // boolean fitTopAndBottomGraphics
end local 6 // float maxGraphicHeightWithLeading
end local 5 // float maxGraphicHeight
end local 4 // float advance
end local 3 // float leading
end local 2 // float descent
end local 1 // float ascent
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 132 0 this Ljava/awt/font/TextLine;
1 132 1 ascent F
2 132 2 descent F
3 132 3 leading F
4 132 4 advance F
5 132 5 maxGraphicHeight F
6 132 6 maxGraphicHeightWithLeading F
11 29 7 tlc Lsun/font/TextLineComponent;
53 86 7 tlc Lsun/font/TextLineComponent;
112 124 7 tlc Lsun/font/TextLineComponent;
128 131 7 tlc Lsun/font/TextLineComponent;
7 132 8 fitTopAndBottomGraphics Z
9 30 9 i I
13 28 10 cm Lsun/font/CoreMetrics;
14 28 11 baseline B
16 20 12 baselineOffset F
18 20 13 gd F
23 28 12 graphicHeight F
24 28 13 graphicHeightWithLeading F
45 132 9 x F
46 132 10 y F
47 132 11 pcm Lsun/font/CoreMetrics;
48 132 12 needPath Z
50 87 13 i I
51 87 14 n I
54 85 15 cm Lsun/font/CoreMetrics;
60 76 16 pb F
61 76 17 pa F
62 76 18 pd F
63 76 19 cb F
64 76 20 ca F
65 76 21 cd F
66 76 22 a F
67 76 23 d F
68 76 24 pax F
69 76 25 pdx F
70 76 26 cax F
71 76 27 cdx F
72 76 28 dax F
73 76 29 ddx F
74 76 30 dx F
89 98 13 pb F
94 95 14 d F
96 98 14 d F
104 131 13 pt Ljava/awt/geom/Point2D$Double;
105 131 14 tx D
106 131 16 ty D
107 131 18 builder Lsun/font/LayoutPathImpl$SegmentPathBuilder;
109 125 19 i I
110 125 20 n I
113 123 21 at Ljava/awt/geom/AffineTransform;
116 118 22 dx D
117 118 24 dy D
129 131 19 at Ljava/awt/geom/AffineTransform;
public java.awt.Rectangle getPixelBounds(java.awt.font.FontRenderContext, float, float);
descriptor: (Ljava/awt/font/FontRenderContext;FF)Ljava/awt/Rectangle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=4
start local 0 // java.awt.font.TextLine this
start local 1 // java.awt.font.FontRenderContext frc
start local 2 // float x
start local 3 // float y
0: .line 348
aconst_null
astore 4 /* result */
start local 4 // java.awt.Rectangle result
1: .line 352
aload 1 /* frc */
ifnull 3
aload 1 /* frc */
aload 0 /* this */
getfield java.awt.font.TextLine.frc:Ljava/awt/font/FontRenderContext;
invokevirtual java.awt.font.FontRenderContext.equals:(Ljava/awt/font/FontRenderContext;)Z
ifeq 3
2: .line 353
aconst_null
astore 1 /* frc */
3: .line 357
StackMap locals: java.awt.Rectangle
StackMap stack:
fload 2 /* x */
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
istore 5 /* ix */
start local 5 // int ix
4: .line 358
fload 3 /* y */
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
istore 6 /* iy */
start local 6 // int iy
5: .line 359
fload 2 /* x */
iload 5 /* ix */
i2f
fsub
fstore 7 /* rx */
start local 7 // float rx
6: .line 360
fload 3 /* y */
iload 6 /* iy */
i2f
fsub
fstore 8 /* ry */
start local 8 // float ry
7: .line 361
aload 1 /* frc */
ifnonnull 8
fload 7 /* rx */
fconst_0
fcmpl
ifne 8
fload 8 /* ry */
fconst_0
fcmpl
ifne 8
iconst_1
goto 9
StackMap locals: java.awt.font.TextLine java.awt.font.FontRenderContext float float java.awt.Rectangle int int float float
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 9 /* canCache */
start local 9 // boolean canCache
10: .line 363
iload 9 /* canCache */
ifeq 15
aload 0 /* this */
getfield java.awt.font.TextLine.pixelBounds:Ljava/awt/Rectangle;
ifnull 15
11: .line 364
new java.awt.Rectangle
dup
aload 0 /* this */
getfield java.awt.font.TextLine.pixelBounds:Ljava/awt/Rectangle;
invokespecial java.awt.Rectangle.<init>:(Ljava/awt/Rectangle;)V
astore 4 /* result */
12: .line 365
aload 4 /* result */
dup
getfield java.awt.Rectangle.x:I
iload 5 /* ix */
iadd
putfield java.awt.Rectangle.x:I
13: .line 366
aload 4 /* result */
dup
getfield java.awt.Rectangle.y:I
iload 6 /* iy */
iadd
putfield java.awt.Rectangle.y:I
14: .line 367
aload 4 /* result */
areturn
15: .line 372
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.isSimple:Z
ifeq 31
16: .line 373
iconst_0
istore 10 /* i */
start local 10 // int i
17: iconst_0
istore 11 /* n */
start local 11 // int n
18: goto 27
19: .line 374
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 10 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 12 /* tlc */
start local 12 // sun.font.TextLineComponent tlc
20: .line 375
aload 12 /* tlc */
aload 1 /* frc */
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 11 /* n */
faload
fload 7 /* rx */
fadd
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 11 /* n */
iconst_1
iadd
faload
fload 8 /* ry */
fadd
invokeinterface sun.font.TextLineComponent.getPixelBounds:(Ljava/awt/font/FontRenderContext;FF)Ljava/awt/Rectangle;
astore 13 /* pb */
start local 13 // java.awt.Rectangle pb
21: .line 376
aload 13 /* pb */
invokevirtual java.awt.Rectangle.isEmpty:()Z
ifne 26
22: .line 377
aload 4 /* result */
ifnonnull 25
23: .line 378
aload 13 /* pb */
astore 4 /* result */
24: .line 379
goto 26
25: .line 380
StackMap locals: sun.font.TextLineComponent java.awt.Rectangle
StackMap stack:
aload 4 /* result */
aload 13 /* pb */
invokevirtual java.awt.Rectangle.add:(Ljava/awt/Rectangle;)V
end local 13 // java.awt.Rectangle pb
end local 12 // sun.font.TextLineComponent tlc
26: .line 373
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
iinc 11 /* n */ 2
StackMap locals:
StackMap stack:
27: iload 10 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 19
end local 11 // int n
end local 10 // int i
28: .line 384
aload 4 /* result */
ifnonnull 47
29: .line 385
new java.awt.Rectangle
dup
iconst_0
iconst_0
iconst_0
iconst_0
invokespecial java.awt.Rectangle.<init>:(IIII)V
astore 4 /* result */
30: .line 387
goto 47
31: .line 389
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.awt.font.TextLine.getVisualBounds:()Ljava/awt/geom/Rectangle2D;
astore 10 /* r2d */
start local 10 // java.awt.geom.Rectangle2D r2d
32: .line 390
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
ifnull 34
33: .line 391
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
aload 10 /* r2d */
invokevirtual sun.font.LayoutPathImpl.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
invokeinterface java.awt.Shape.getBounds:()Ljava/awt/Rectangle;
astore 10 /* r2d */
34: .line 393
StackMap locals: java.awt.geom.Rectangle2D
StackMap stack:
aload 10 /* r2d */
invokevirtual java.awt.geom.Rectangle2D.getBounds:()Ljava/awt/Rectangle;
astore 11 /* bounds */
start local 11 // java.awt.Rectangle bounds
35: .line 394
new java.awt.image.BufferedImage
dup
aload 11 /* bounds */
getfield java.awt.Rectangle.width:I
bipush 6
iadd
36: .line 395
aload 11 /* bounds */
getfield java.awt.Rectangle.height:I
bipush 6
iadd
37: .line 396
iconst_2
38: .line 394
invokespecial java.awt.image.BufferedImage.<init>:(III)V
astore 12 /* im */
start local 12 // java.awt.image.BufferedImage im
39: .line 398
aload 12 /* im */
invokevirtual java.awt.image.BufferedImage.createGraphics:()Ljava/awt/Graphics2D;
astore 13 /* g2d */
start local 13 // java.awt.Graphics2D g2d
40: .line 399
aload 13 /* g2d */
getstatic java.awt.Color.WHITE:Ljava/awt/Color;
invokevirtual java.awt.Graphics2D.setColor:(Ljava/awt/Color;)V
41: .line 400
aload 13 /* g2d */
iconst_0
iconst_0
aload 12 /* im */
invokevirtual java.awt.image.BufferedImage.getWidth:()I
aload 12 /* im */
invokevirtual java.awt.image.BufferedImage.getHeight:()I
invokevirtual java.awt.Graphics2D.fillRect:(IIII)V
42: .line 402
aload 13 /* g2d */
getstatic java.awt.Color.BLACK:Ljava/awt/Color;
invokevirtual java.awt.Graphics2D.setColor:(Ljava/awt/Color;)V
43: .line 403
aload 0 /* this */
aload 13 /* g2d */
fload 7 /* rx */
ldc 3.0
fadd
aload 11 /* bounds */
getfield java.awt.Rectangle.x:I
i2f
fsub
fload 8 /* ry */
ldc 3.0
fadd
aload 11 /* bounds */
getfield java.awt.Rectangle.y:I
i2f
fsub
invokevirtual java.awt.font.TextLine.draw:(Ljava/awt/Graphics2D;FF)V
44: .line 405
aload 12 /* im */
invokestatic java.awt.font.TextLine.computePixelBounds:(Ljava/awt/image/BufferedImage;)Ljava/awt/Rectangle;
astore 4 /* result */
45: .line 406
aload 4 /* result */
dup
getfield java.awt.Rectangle.x:I
iconst_3
aload 11 /* bounds */
getfield java.awt.Rectangle.x:I
isub
isub
putfield java.awt.Rectangle.x:I
46: .line 407
aload 4 /* result */
dup
getfield java.awt.Rectangle.y:I
iconst_3
aload 11 /* bounds */
getfield java.awt.Rectangle.y:I
isub
isub
putfield java.awt.Rectangle.y:I
end local 13 // java.awt.Graphics2D g2d
end local 12 // java.awt.image.BufferedImage im
end local 11 // java.awt.Rectangle bounds
end local 10 // java.awt.geom.Rectangle2D r2d
47: .line 410
StackMap locals:
StackMap stack:
iload 9 /* canCache */
ifeq 49
48: .line 411
aload 0 /* this */
new java.awt.Rectangle
dup
aload 4 /* result */
invokespecial java.awt.Rectangle.<init>:(Ljava/awt/Rectangle;)V
putfield java.awt.font.TextLine.pixelBounds:Ljava/awt/Rectangle;
49: .line 414
StackMap locals:
StackMap stack:
aload 4 /* result */
dup
getfield java.awt.Rectangle.x:I
iload 5 /* ix */
iadd
putfield java.awt.Rectangle.x:I
50: .line 415
aload 4 /* result */
dup
getfield java.awt.Rectangle.y:I
iload 6 /* iy */
iadd
putfield java.awt.Rectangle.y:I
51: .line 416
aload 4 /* result */
areturn
end local 9 // boolean canCache
end local 8 // float ry
end local 7 // float rx
end local 6 // int iy
end local 5 // int ix
end local 4 // java.awt.Rectangle result
end local 3 // float y
end local 2 // float x
end local 1 // java.awt.font.FontRenderContext frc
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Ljava/awt/font/TextLine;
0 52 1 frc Ljava/awt/font/FontRenderContext;
0 52 2 x F
0 52 3 y F
1 52 4 result Ljava/awt/Rectangle;
4 52 5 ix I
5 52 6 iy I
6 52 7 rx F
7 52 8 ry F
10 52 9 canCache Z
17 28 10 i I
18 28 11 n I
20 26 12 tlc Lsun/font/TextLineComponent;
21 26 13 pb Ljava/awt/Rectangle;
32 47 10 r2d Ljava/awt/geom/Rectangle2D;
35 47 11 bounds Ljava/awt/Rectangle;
39 47 12 im Ljava/awt/image/BufferedImage;
40 47 13 g2d Ljava/awt/Graphics2D;
MethodParameters:
Name Flags
frc
x
y
static java.awt.Rectangle computePixelBounds(java.awt.image.BufferedImage);
descriptor: (Ljava/awt/image/BufferedImage;)Ljava/awt/Rectangle;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=9, args_size=1
start local 0 // java.awt.image.BufferedImage im
0: .line 420
aload 0 /* im */
invokevirtual java.awt.image.BufferedImage.getWidth:()I
istore 1 /* w */
start local 1 // int w
1: .line 421
aload 0 /* im */
invokevirtual java.awt.image.BufferedImage.getHeight:()I
istore 2 /* h */
start local 2 // int h
2: .line 423
iconst_m1
istore 3 /* l */
start local 3 // int l
3: iconst_m1
istore 4 /* t */
start local 4 // int t
4: iload 1 /* w */
istore 5 /* r */
start local 5 // int r
5: iload 2 /* h */
istore 6 /* b */
start local 6 // int b
6: .line 427
iload 1 /* w */
newarray 10
astore 7 /* buf */
start local 7 // int[] buf
7: .line 428
goto 15
8: .line 429
StackMap locals: java.awt.image.BufferedImage int int int int int int int[]
StackMap stack:
aload 0 /* im */
iconst_0
iload 4 /* t */
aload 7 /* buf */
arraylength
iconst_1
aload 7 /* buf */
iconst_0
iload 1 /* w */
invokevirtual java.awt.image.BufferedImage.getRGB:(IIII[III)[I
pop
9: .line 430
iconst_0
istore 8 /* i */
start local 8 // int i
10: goto 14
11: .line 431
StackMap locals: int
StackMap stack:
aload 7 /* buf */
iload 8 /* i */
iaload
iconst_m1
if_icmpeq 13
12: .line 432
goto 16
13: .line 430
StackMap locals:
StackMap stack:
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 8 /* i */
aload 7 /* buf */
arraylength
if_icmplt 11
end local 8 // int i
15: .line 428
StackMap locals:
StackMap stack:
iinc 4 /* t */ 1
iload 4 /* t */
iload 2 /* h */
if_icmplt 8
end local 7 // int[] buf
16: .line 440
StackMap locals:
StackMap stack:
iload 1 /* w */
newarray 10
astore 7 /* buf */
start local 7 // int[] buf
17: .line 441
goto 25
18: .line 442
StackMap locals: int[]
StackMap stack:
aload 0 /* im */
iconst_0
iload 6 /* b */
aload 7 /* buf */
arraylength
iconst_1
aload 7 /* buf */
iconst_0
iload 1 /* w */
invokevirtual java.awt.image.BufferedImage.getRGB:(IIII[III)[I
pop
19: .line 443
iconst_0
istore 8 /* i */
start local 8 // int i
20: goto 24
21: .line 444
StackMap locals: int
StackMap stack:
aload 7 /* buf */
iload 8 /* i */
iaload
iconst_m1
if_icmpeq 23
22: .line 445
goto 26
23: .line 443
StackMap locals:
StackMap stack:
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
24: iload 8 /* i */
aload 7 /* buf */
arraylength
if_icmplt 21
end local 8 // int i
25: .line 441
StackMap locals:
StackMap stack:
iinc 6 /* b */ -1
iload 6 /* b */
iload 4 /* t */
if_icmpgt 18
26: .line 449
StackMap locals:
StackMap stack:
iinc 6 /* b */ 1
end local 7 // int[] buf
27: .line 454
goto 35
28: .line 455
StackMap locals:
StackMap stack:
iload 4 /* t */
istore 7 /* i */
start local 7 // int i
29: goto 34
30: .line 456
StackMap locals: int
StackMap stack:
aload 0 /* im */
iload 3 /* l */
iload 7 /* i */
invokevirtual java.awt.image.BufferedImage.getRGB:(II)I
istore 8 /* v */
start local 8 // int v
31: .line 457
iload 8 /* v */
iconst_m1
if_icmpeq 33
32: .line 458
goto 44
end local 8 // int v
33: .line 455
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
34: iload 7 /* i */
iload 6 /* b */
if_icmplt 30
end local 7 // int i
35: .line 454
StackMap locals:
StackMap stack:
iinc 3 /* l */ 1
iload 3 /* l */
iload 5 /* r */
if_icmplt 28
36: .line 466
goto 44
37: .line 467
StackMap locals:
StackMap stack:
iload 4 /* t */
istore 7 /* i */
start local 7 // int i
38: goto 43
39: .line 468
StackMap locals: int
StackMap stack:
aload 0 /* im */
iload 5 /* r */
iload 7 /* i */
invokevirtual java.awt.image.BufferedImage.getRGB:(II)I
istore 8 /* v */
start local 8 // int v
40: .line 469
iload 8 /* v */
iconst_m1
if_icmpeq 42
41: .line 470
goto 45
end local 8 // int v
42: .line 467
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
43: iload 7 /* i */
iload 6 /* b */
if_icmplt 39
end local 7 // int i
44: .line 466
StackMap locals:
StackMap stack:
iinc 5 /* r */ -1
iload 5 /* r */
iload 3 /* l */
if_icmpgt 37
45: .line 474
StackMap locals:
StackMap stack:
iinc 5 /* r */ 1
46: .line 477
new java.awt.Rectangle
dup
iload 3 /* l */
iload 4 /* t */
iload 5 /* r */
iload 3 /* l */
isub
iload 6 /* b */
iload 4 /* t */
isub
invokespecial java.awt.Rectangle.<init>:(IIII)V
areturn
end local 6 // int b
end local 5 // int r
end local 4 // int t
end local 3 // int l
end local 2 // int h
end local 1 // int w
end local 0 // java.awt.image.BufferedImage im
LocalVariableTable:
Start End Slot Name Signature
0 47 0 im Ljava/awt/image/BufferedImage;
1 47 1 w I
2 47 2 h I
3 47 3 l I
4 47 4 t I
5 47 5 r I
6 47 6 b I
7 16 7 buf [I
10 15 8 i I
17 27 7 buf [I
20 25 8 i I
29 35 7 i I
31 33 8 v I
38 44 7 i I
40 42 8 v I
MethodParameters:
Name Flags
im
public int characterCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 539
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsLimit:I
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
isub
ireturn
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
public boolean isDirectionLTR();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 544
aload 0 /* this */
getfield java.awt.font.TextLine.fIsDirectionLTR:Z
ireturn
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
public java.awt.font.TextLine$TextLineMetrics getMetrics();
descriptor: ()Ljava/awt/font/TextLine$TextLineMetrics;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 548
aload 0 /* this */
getfield java.awt.font.TextLine.fMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
areturn
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
public int visualToLogical(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int visualIndex
0: .line 553
aload 0 /* this */
getfield java.awt.font.TextLine.fCharLogicalOrder:[I
ifnonnull 2
1: .line 554
iload 1 /* visualIndex */
ireturn
2: .line 557
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fCharVisualOrder:[I
ifnonnull 4
3: .line 558
aload 0 /* this */
aload 0 /* this */
getfield java.awt.font.TextLine.fCharLogicalOrder:[I
invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
putfield java.awt.font.TextLine.fCharVisualOrder:[I
4: .line 561
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fCharVisualOrder:[I
iload 1 /* visualIndex */
iaload
ireturn
end local 1 // int visualIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/awt/font/TextLine;
0 5 1 visualIndex I
MethodParameters:
Name Flags
visualIndex
public int logicalToVisual(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 566
aload 0 /* this */
getfield java.awt.font.TextLine.fCharLogicalOrder:[I
ifnonnull 2
1: .line 567
iload 1 /* logicalIndex */
goto 3
StackMap locals:
StackMap stack:
2: aload 0 /* this */
getfield java.awt.font.TextLine.fCharLogicalOrder:[I
iload 1 /* logicalIndex */
iaload
3: .line 566
StackMap locals:
StackMap stack: int
ireturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/font/TextLine;
0 4 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public byte getCharLevel(int);
descriptor: (I)B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 572
aload 0 /* this */
getfield java.awt.font.TextLine.fCharLevels:[B
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0 /* this */
getfield java.awt.font.TextLine.fCharLevels:[B
iload 1 /* logicalIndex */
baload
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/awt/font/TextLine;
0 3 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public boolean isCharLTR(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 577
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.getCharLevel:(I)B
iconst_1
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/awt/font/TextLine;
0 2 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public int getCharType(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 582
aload 0 /* this */
getfield java.awt.font.TextLine.fChars:[C
iload 1 /* logicalIndex */
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
iadd
caload
invokestatic java.lang.Character.getType:(C)I
ireturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public boolean isCharSpace(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 587
aload 0 /* this */
getfield java.awt.font.TextLine.fChars:[C
iload 1 /* logicalIndex */
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
iadd
caload
invokestatic java.lang.Character.isSpaceChar:(C)Z
ireturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public boolean isCharWhitespace(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 592
aload 0 /* this */
getfield java.awt.font.TextLine.fChars:[C
iload 1 /* logicalIndex */
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
iadd
caload
invokestatic java.lang.Character.isWhitespace:(C)Z
ireturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharAngle(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 597
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.getCoreMetricsAt:(I)Lsun/font/CoreMetrics;
getfield sun.font.CoreMetrics.italicAngle:F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public sun.font.CoreMetrics getCoreMetricsAt(int);
descriptor: (I)Lsun/font/CoreMetrics;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 602
iload 1 /* logicalIndex */
ifge 2
1: .line 603
new java.lang.IllegalArgumentException
dup
ldc "Negative logicalIndex."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 606
StackMap locals:
StackMap stack:
iload 1 /* logicalIndex */
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsLimit:I
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
isub
if_icmple 4
3: .line 607
new java.lang.IllegalArgumentException
dup
ldc "logicalIndex too large."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 610
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* currentTlc */
start local 2 // int currentTlc
5: .line 612
iconst_0
istore 3 /* tlcLimit */
start local 3 // int tlcLimit
6: .line 615
StackMap locals: int int
StackMap stack:
iload 3 /* tlcLimit */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 2 /* currentTlc */
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 3 /* tlcLimit */
7: .line 616
iload 3 /* tlcLimit */
iload 1 /* logicalIndex */
if_icmple 9
8: .line 617
goto 13
9: .line 619
StackMap locals:
StackMap stack:
iinc 2 /* currentTlc */ 1
10: .line 620
iload 3 /* tlcLimit */
pop
11: .line 621
iload 2 /* currentTlc */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
12: .line 614
if_icmplt 6
13: .line 623
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 2 /* currentTlc */
aaload
invokeinterface sun.font.TextLineComponent.getCoreMetrics:()Lsun/font/CoreMetrics;
areturn
end local 3 // int tlcLimit
end local 2 // int currentTlc
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/awt/font/TextLine;
0 14 1 logicalIndex I
5 14 2 currentTlc I
6 14 3 tlcLimit I
MethodParameters:
Name Flags
logicalIndex
public float getCharAscent(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 628
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.getCoreMetricsAt:(I)Lsun/font/CoreMetrics;
getfield sun.font.CoreMetrics.ascent:F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharDescent(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 633
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.getCoreMetricsAt:(I)Lsun/font/CoreMetrics;
getfield sun.font.CoreMetrics.descent:F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharShift(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 638
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.getCoreMetricsAt:(I)Lsun/font/CoreMetrics;
getfield sun.font.CoreMetrics.ssOffset:F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
private float applyFunctionAtIndex(int, java.awt.font.TextLine$Function);
descriptor: (ILjava/awt/font/TextLine$Function;)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
start local 2 // java.awt.font.TextLine$Function f
0: .line 643
iload 1 /* logicalIndex */
ifge 2
1: .line 644
new java.lang.IllegalArgumentException
dup
ldc "Negative logicalIndex."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 647
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* tlcStart */
start local 3 // int tlcStart
3: .line 649
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 10
5: .line 651
StackMap locals: int int
StackMap stack:
iload 3 /* tlcStart */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 4 /* i */
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 5 /* tlcLimit */
start local 5 // int tlcLimit
6: .line 652
iload 5 /* tlcLimit */
iload 1 /* logicalIndex */
if_icmple 8
7: .line 653
aload 2 /* f */
aload 0 /* this */
iload 4 /* i */
iload 1 /* logicalIndex */
iload 3 /* tlcStart */
isub
invokevirtual java.awt.font.TextLine$Function.computeFunction:(Ljava/awt/font/TextLine;II)F
freturn
8: .line 656
StackMap locals: int
StackMap stack:
iload 5 /* tlcLimit */
istore 3 /* tlcStart */
end local 5 // int tlcLimit
9: .line 649
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 4 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 5
end local 4 // int i
11: .line 660
new java.lang.IllegalArgumentException
dup
ldc "logicalIndex too large."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 // int tlcStart
end local 2 // java.awt.font.TextLine$Function f
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/awt/font/TextLine;
0 12 1 logicalIndex I
0 12 2 f Ljava/awt/font/TextLine$Function;
3 12 3 tlcStart I
4 11 4 i I
6 9 5 tlcLimit I
MethodParameters:
Name Flags
logicalIndex
f
public float getCharAdvance(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 665
aload 0 /* this */
iload 1 /* logicalIndex */
getstatic java.awt.font.TextLine.fgAdvanceF:Ljava/awt/font/TextLine$Function;
invokevirtual java.awt.font.TextLine.applyFunctionAtIndex:(ILjava/awt/font/TextLine$Function;)F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharXPosition(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 670
aload 0 /* this */
iload 1 /* logicalIndex */
getstatic java.awt.font.TextLine.fgXPositionF:Ljava/awt/font/TextLine$Function;
invokevirtual java.awt.font.TextLine.applyFunctionAtIndex:(ILjava/awt/font/TextLine$Function;)F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharYPosition(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 675
aload 0 /* this */
iload 1 /* logicalIndex */
getstatic java.awt.font.TextLine.fgYPositionF:Ljava/awt/font/TextLine$Function;
invokevirtual java.awt.font.TextLine.applyFunctionAtIndex:(ILjava/awt/font/TextLine$Function;)F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharLinePosition(int);
descriptor: (I)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 680
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.getCharXPosition:(I)F
freturn
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
0 1 1 logicalIndex I
MethodParameters:
Name Flags
logicalIndex
public float getCharLinePosition(int, boolean);
descriptor: (IZ)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
start local 2 // boolean leading
0: .line 684
aload 0 /* this */
iload 1 /* logicalIndex */
invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
iload 2 /* leading */
if_icmpne 1
getstatic java.awt.font.TextLine.fgXPositionF:Ljava/awt/font/TextLine$Function;
goto 2
StackMap locals:
StackMap stack:
1: getstatic java.awt.font.TextLine.fgPosAdvF:Ljava/awt/font/TextLine$Function;
StackMap locals:
StackMap stack: java.awt.font.TextLine$Function
2: astore 3 /* f */
start local 3 // java.awt.font.TextLine$Function f
3: .line 685
aload 0 /* this */
iload 1 /* logicalIndex */
aload 3 /* f */
invokevirtual java.awt.font.TextLine.applyFunctionAtIndex:(ILjava/awt/font/TextLine$Function;)F
freturn
end local 3 // java.awt.font.TextLine$Function f
end local 2 // boolean leading
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/font/TextLine;
0 4 1 logicalIndex I
0 4 2 leading Z
3 4 3 f Ljava/awt/font/TextLine$Function;
MethodParameters:
Name Flags
logicalIndex
leading
public boolean caretAtOffsetIsValid(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int offset
0: .line 690
iload 1 /* offset */
ifge 2
1: .line 691
new java.lang.IllegalArgumentException
dup
ldc "Negative offset."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 694
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* tlcStart */
start local 2 // int tlcStart
3: .line 696
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 10
5: .line 698
StackMap locals: int int
StackMap stack:
iload 2 /* tlcStart */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 3 /* i */
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 4 /* tlcLimit */
start local 4 // int tlcLimit
6: .line 699
iload 4 /* tlcLimit */
iload 1 /* offset */
if_icmple 8
7: .line 700
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 3 /* i */
aaload
iload 1 /* offset */
iload 2 /* tlcStart */
isub
invokeinterface sun.font.TextLineComponent.caretAtOffsetIsValid:(I)Z
ireturn
8: .line 703
StackMap locals: int
StackMap stack:
iload 4 /* tlcLimit */
istore 2 /* tlcStart */
end local 4 // int tlcLimit
9: .line 696
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 3 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 5
end local 3 // int i
11: .line 707
new java.lang.IllegalArgumentException
dup
ldc "logicalIndex too large."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 // int tlcStart
end local 1 // int offset
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/awt/font/TextLine;
0 12 1 offset I
3 12 2 tlcStart I
4 11 3 i I
6 9 4 tlcLimit I
MethodParameters:
Name Flags
offset
private int getComponentLogicalIndex(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int vi
0: .line 714
aload 0 /* this */
getfield java.awt.font.TextLine.fComponentVisualOrder:[I
ifnonnull 2
1: .line 715
iload 1 /* vi */
ireturn
2: .line 717
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponentVisualOrder:[I
iload 1 /* vi */
iaload
ireturn
end local 1 // int vi
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/awt/font/TextLine;
0 3 1 vi I
MethodParameters:
Name Flags
vi
private int getComponentVisualIndex(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int li
0: .line 724
aload 0 /* this */
getfield java.awt.font.TextLine.fComponentVisualOrder:[I
ifnonnull 2
1: .line 725
iload 1 /* li */
ireturn
2: .line 727
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* i */
start local 2 // int i
3: goto 7
4: .line 728
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponentVisualOrder:[I
iload 2 /* i */
iaload
iload 1 /* li */
if_icmpne 6
5: .line 729
iload 2 /* i */
ireturn
6: .line 727
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 2 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponentVisualOrder:[I
arraylength
if_icmplt 4
end local 2 // int i
8: .line 732
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "bad component index: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* li */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
end local 1 // int li
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/awt/font/TextLine;
0 9 1 li I
3 8 2 i I
MethodParameters:
Name Flags
li
public java.awt.geom.Rectangle2D getCharBounds(int);
descriptor: (I)Ljava/awt/geom/Rectangle2D;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int logicalIndex
0: .line 737
iload 1 /* logicalIndex */
ifge 2
1: .line 738
new java.lang.IllegalArgumentException
dup
ldc "Negative logicalIndex."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 741
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* tlcStart */
start local 2 // int tlcStart
3: .line 743
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 19
5: .line 745
StackMap locals: int int
StackMap stack:
iload 2 /* tlcStart */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 3 /* i */
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 4 /* tlcLimit */
start local 4 // int tlcLimit
6: .line 746
iload 4 /* tlcLimit */
iload 1 /* logicalIndex */
if_icmple 17
7: .line 748
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 3 /* i */
aaload
astore 5 /* tlc */
start local 5 // sun.font.TextLineComponent tlc
8: .line 749
iload 1 /* logicalIndex */
iload 2 /* tlcStart */
isub
istore 6 /* indexInTlc */
start local 6 // int indexInTlc
9: .line 750
aload 5 /* tlc */
iload 6 /* indexInTlc */
invokeinterface sun.font.TextLineComponent.getCharVisualBounds:(I)Ljava/awt/geom/Rectangle2D;
astore 7 /* chBounds */
start local 7 // java.awt.geom.Rectangle2D chBounds
10: .line 752
aload 0 /* this */
iload 3 /* i */
invokevirtual java.awt.font.TextLine.getComponentVisualIndex:(I)I
istore 8 /* vi */
start local 8 // int vi
11: .line 753
aload 7 /* chBounds */
aload 7 /* chBounds */
invokevirtual java.awt.geom.Rectangle2D.getX:()D
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 8 /* vi */
iconst_2
imul
faload
f2d
dadd
12: .line 754
aload 7 /* chBounds */
invokevirtual java.awt.geom.Rectangle2D.getY:()D
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 8 /* vi */
iconst_2
imul
iconst_1
iadd
faload
f2d
dadd
13: .line 755
aload 7 /* chBounds */
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
14: .line 756
aload 7 /* chBounds */
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
15: .line 753
invokevirtual java.awt.geom.Rectangle2D.setRect:(DDDD)V
16: .line 757
aload 7 /* chBounds */
areturn
end local 8 // int vi
end local 7 // java.awt.geom.Rectangle2D chBounds
end local 6 // int indexInTlc
end local 5 // sun.font.TextLineComponent tlc
17: .line 760
StackMap locals: int
StackMap stack:
iload 4 /* tlcLimit */
istore 2 /* tlcStart */
end local 4 // int tlcLimit
18: .line 743
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
19: iload 3 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 5
end local 3 // int i
20: .line 764
new java.lang.IllegalArgumentException
dup
ldc "logicalIndex too large."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 // int tlcStart
end local 1 // int logicalIndex
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/awt/font/TextLine;
0 21 1 logicalIndex I
3 21 2 tlcStart I
4 20 3 i I
6 18 4 tlcLimit I
8 17 5 tlc Lsun/font/TextLineComponent;
9 17 6 indexInTlc I
10 17 7 chBounds Ljava/awt/geom/Rectangle2D;
11 17 8 vi I
MethodParameters:
Name Flags
logicalIndex
private float getComponentShift(int);
descriptor: (I)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // int index
0: .line 768
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 1 /* index */
aaload
invokeinterface sun.font.TextLineComponent.getCoreMetrics:()Lsun/font/CoreMetrics;
astore 2 /* cm */
start local 2 // sun.font.CoreMetrics cm
1: .line 769
aload 2 /* cm */
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
invokevirtual sun.font.CoreMetrics.effectiveBaselineOffset:([F)F
freturn
end local 2 // sun.font.CoreMetrics cm
end local 1 // int index
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/awt/font/TextLine;
0 2 1 index I
1 2 2 cm Lsun/font/CoreMetrics;
MethodParameters:
Name Flags
index
public void draw(java.awt.Graphics2D, float, float);
descriptor: (Ljava/awt/Graphics2D;FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=4
start local 0 // java.awt.font.TextLine this
start local 1 // java.awt.Graphics2D g2
start local 2 // float x
start local 3 // float y
0: .line 773
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
ifnonnull 9
1: .line 774
iconst_0
istore 4 /* i */
start local 4 // int i
2: iconst_0
istore 5 /* n */
start local 5 // int n
3: goto 7
4: .line 775
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 4 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 6 /* tlc */
start local 6 // sun.font.TextLineComponent tlc
5: .line 776
aload 6 /* tlc */
aload 1 /* g2 */
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 5 /* n */
faload
fload 2 /* x */
fadd
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 5 /* n */
iconst_1
iadd
faload
fload 3 /* y */
fadd
invokeinterface sun.font.TextLineComponent.draw:(Ljava/awt/Graphics2D;FF)V
end local 6 // sun.font.TextLineComponent tlc
6: .line 774
iinc 4 /* i */ 1
iinc 5 /* n */ 2
StackMap locals:
StackMap stack:
7: iload 4 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 4
end local 5 // int n
end local 4 // int i
8: .line 778
goto 28
9: .line 779
StackMap locals:
StackMap stack:
aload 1 /* g2 */
invokevirtual java.awt.Graphics2D.getTransform:()Ljava/awt/geom/AffineTransform;
astore 4 /* oldTx */
start local 4 // java.awt.geom.AffineTransform oldTx
10: .line 780
new java.awt.geom.Point2D$Float
dup
invokespecial java.awt.geom.Point2D$Float.<init>:()V
astore 5 /* pt */
start local 5 // java.awt.geom.Point2D$Float pt
11: .line 781
iconst_0
istore 6 /* i */
start local 6 // int i
12: iconst_0
istore 7 /* n */
start local 7 // int n
13: goto 27
14: .line 782
StackMap locals: java.awt.font.TextLine java.awt.Graphics2D float float java.awt.geom.AffineTransform java.awt.geom.Point2D$Float int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 6 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 8 /* tlc */
start local 8 // sun.font.TextLineComponent tlc
15: .line 783
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 7 /* n */
faload
f2d
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 7 /* n */
iconst_1
iadd
faload
f2d
iconst_0
aload 5 /* pt */
invokevirtual sun.font.LayoutPathImpl.pathToPoint:(DDZLjava/awt/geom/Point2D;)V
16: .line 784
aload 5 /* pt */
dup
getfield java.awt.geom.Point2D$Float.x:F
fload 2 /* x */
fadd
putfield java.awt.geom.Point2D$Float.x:F
17: .line 785
aload 5 /* pt */
dup
getfield java.awt.geom.Point2D$Float.y:F
fload 3 /* y */
fadd
putfield java.awt.geom.Point2D$Float.y:F
18: .line 786
aload 8 /* tlc */
invokeinterface sun.font.TextLineComponent.getBaselineTransform:()Ljava/awt/geom/AffineTransform;
astore 9 /* at */
start local 9 // java.awt.geom.AffineTransform at
19: .line 788
aload 9 /* at */
ifnull 25
20: .line 789
aload 1 /* g2 */
aload 5 /* pt */
getfield java.awt.geom.Point2D$Float.x:F
f2d
aload 9 /* at */
invokevirtual java.awt.geom.AffineTransform.getTranslateX:()D
dsub
aload 5 /* pt */
getfield java.awt.geom.Point2D$Float.y:F
f2d
aload 9 /* at */
invokevirtual java.awt.geom.AffineTransform.getTranslateY:()D
dsub
invokevirtual java.awt.Graphics2D.translate:(DD)V
21: .line 790
aload 1 /* g2 */
aload 9 /* at */
invokevirtual java.awt.Graphics2D.transform:(Ljava/awt/geom/AffineTransform;)V
22: .line 791
aload 8 /* tlc */
aload 1 /* g2 */
fconst_0
fconst_0
invokeinterface sun.font.TextLineComponent.draw:(Ljava/awt/Graphics2D;FF)V
23: .line 792
aload 1 /* g2 */
aload 4 /* oldTx */
invokevirtual java.awt.Graphics2D.setTransform:(Ljava/awt/geom/AffineTransform;)V
24: .line 793
goto 26
25: .line 794
StackMap locals: sun.font.TextLineComponent java.awt.geom.AffineTransform
StackMap stack:
aload 8 /* tlc */
aload 1 /* g2 */
aload 5 /* pt */
getfield java.awt.geom.Point2D$Float.x:F
aload 5 /* pt */
getfield java.awt.geom.Point2D$Float.y:F
invokeinterface sun.font.TextLineComponent.draw:(Ljava/awt/Graphics2D;FF)V
end local 9 // java.awt.geom.AffineTransform at
end local 8 // sun.font.TextLineComponent tlc
26: .line 781
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
iinc 7 /* n */ 2
StackMap locals:
StackMap stack:
27: iload 6 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 14
end local 7 // int n
end local 6 // int i
end local 5 // java.awt.geom.Point2D$Float pt
end local 4 // java.awt.geom.AffineTransform oldTx
28: .line 798
StackMap locals: java.awt.font.TextLine java.awt.Graphics2D float float
StackMap stack:
return
end local 3 // float y
end local 2 // float x
end local 1 // java.awt.Graphics2D g2
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/awt/font/TextLine;
0 29 1 g2 Ljava/awt/Graphics2D;
0 29 2 x F
0 29 3 y F
2 8 4 i I
3 8 5 n I
5 6 6 tlc Lsun/font/TextLineComponent;
10 28 4 oldTx Ljava/awt/geom/AffineTransform;
11 28 5 pt Ljava/awt/geom/Point2D$Float;
12 28 6 i I
13 28 7 n I
15 26 8 tlc Lsun/font/TextLineComponent;
19 26 9 at Ljava/awt/geom/AffineTransform;
MethodParameters:
Name Flags
g2
x
y
public java.awt.geom.Rectangle2D getVisualBounds();
descriptor: ()Ljava/awt/geom/Rectangle2D;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 806
aconst_null
astore 1 /* result */
start local 1 // java.awt.geom.Rectangle2D result
1: .line 808
iconst_0
istore 2 /* i */
start local 2 // int i
2: iconst_0
istore 3 /* n */
start local 3 // int n
3: goto 28
4: .line 809
StackMap locals: java.awt.geom.Rectangle2D int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 2 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 4 /* tlc */
start local 4 // sun.font.TextLineComponent tlc
5: .line 810
aload 4 /* tlc */
invokeinterface sun.font.TextLineComponent.getVisualBounds:()Ljava/awt/geom/Rectangle2D;
astore 5 /* r */
start local 5 // java.awt.geom.Rectangle2D r
6: .line 812
new java.awt.geom.Point2D$Float
dup
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 3 /* n */
faload
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 3 /* n */
iconst_1
iadd
faload
invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
astore 6 /* pt */
start local 6 // java.awt.geom.Point2D$Float pt
7: .line 813
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
ifnonnull 12
8: .line 814
aload 5 /* r */
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getMinX:()D
aload 6 /* pt */
getfield java.awt.geom.Point2D$Float.x:F
f2d
dadd
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getMinY:()D
aload 6 /* pt */
getfield java.awt.geom.Point2D$Float.y:F
f2d
dadd
9: .line 815
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
10: .line 814
invokevirtual java.awt.geom.Rectangle2D.setRect:(DDDD)V
11: .line 816
goto 23
12: .line 817
StackMap locals: sun.font.TextLineComponent java.awt.geom.Rectangle2D java.awt.geom.Point2D$Float
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
aload 6 /* pt */
iconst_0
aload 6 /* pt */
invokevirtual sun.font.LayoutPathImpl.pathToPoint:(Ljava/awt/geom/Point2D;ZLjava/awt/geom/Point2D;)V
13: .line 819
aload 4 /* tlc */
invokeinterface sun.font.TextLineComponent.getBaselineTransform:()Ljava/awt/geom/AffineTransform;
astore 7 /* at */
start local 7 // java.awt.geom.AffineTransform at
14: .line 820
aload 7 /* at */
ifnull 20
15: .line 822
aload 6 /* pt */
getfield java.awt.geom.Point2D$Float.x:F
f2d
aload 7 /* at */
invokevirtual java.awt.geom.AffineTransform.getTranslateX:()D
dsub
aload 6 /* pt */
getfield java.awt.geom.Point2D$Float.y:F
f2d
aload 7 /* at */
invokevirtual java.awt.geom.AffineTransform.getTranslateY:()D
dsub
16: .line 821
invokestatic java.awt.geom.AffineTransform.getTranslateInstance:(DD)Ljava/awt/geom/AffineTransform;
astore 8 /* tx */
start local 8 // java.awt.geom.AffineTransform tx
17: .line 823
aload 8 /* tx */
aload 7 /* at */
invokevirtual java.awt.geom.AffineTransform.concatenate:(Ljava/awt/geom/AffineTransform;)V
18: .line 824
aload 8 /* tx */
aload 5 /* r */
invokevirtual java.awt.geom.AffineTransform.createTransformedShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
invokeinterface java.awt.Shape.getBounds2D:()Ljava/awt/geom/Rectangle2D;
astore 5 /* r */
end local 8 // java.awt.geom.AffineTransform tx
19: .line 825
goto 23
20: .line 826
StackMap locals: java.awt.geom.AffineTransform
StackMap stack:
aload 5 /* r */
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getMinX:()D
aload 6 /* pt */
getfield java.awt.geom.Point2D$Float.x:F
f2d
dadd
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getMinY:()D
aload 6 /* pt */
getfield java.awt.geom.Point2D$Float.y:F
f2d
dadd
21: .line 827
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
22: .line 826
invokevirtual java.awt.geom.Rectangle2D.setRect:(DDDD)V
end local 7 // java.awt.geom.AffineTransform at
23: .line 831
StackMap locals:
StackMap stack:
aload 1 /* result */
ifnonnull 26
24: .line 832
aload 5 /* r */
astore 1 /* result */
25: .line 833
goto 27
26: .line 834
StackMap locals:
StackMap stack:
aload 1 /* result */
aload 5 /* r */
invokevirtual java.awt.geom.Rectangle2D.add:(Ljava/awt/geom/Rectangle2D;)V
end local 6 // java.awt.geom.Point2D$Float pt
end local 5 // java.awt.geom.Rectangle2D r
end local 4 // sun.font.TextLineComponent tlc
27: .line 808
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
iinc 3 /* n */ 2
StackMap locals:
StackMap stack:
28: iload 2 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 4
end local 3 // int n
end local 2 // int i
29: .line 838
aload 1 /* result */
ifnonnull 31
30: .line 839
new java.awt.geom.Rectangle2D$Float
dup
ldc 3.4028235E38
ldc 3.4028235E38
ldc 1.4E-45
ldc 1.4E-45
invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
astore 1 /* result */
31: .line 842
StackMap locals:
StackMap stack:
aload 1 /* result */
areturn
end local 1 // java.awt.geom.Rectangle2D result
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Ljava/awt/font/TextLine;
1 32 1 result Ljava/awt/geom/Rectangle2D;
2 29 2 i I
3 29 3 n I
5 27 4 tlc Lsun/font/TextLineComponent;
6 27 5 r Ljava/awt/geom/Rectangle2D;
7 27 6 pt Ljava/awt/geom/Point2D$Float;
14 23 7 at Ljava/awt/geom/AffineTransform;
17 19 8 tx Ljava/awt/geom/AffineTransform;
public java.awt.geom.Rectangle2D getItalicBounds();
descriptor: ()Ljava/awt/geom/Rectangle2D;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 847
ldc 3.4028235E38
fstore 1 /* left */
start local 1 // float left
1: ldc -3.4028235E38
fstore 2 /* right */
start local 2 // float right
2: .line 848
ldc 3.4028235E38
fstore 3 /* top */
start local 3 // float top
3: ldc -3.4028235E38
fstore 4 /* bottom */
start local 4 // float bottom
4: .line 850
iconst_0
istore 5 /* i */
start local 5 // int i
5: iconst_0
istore 6 /* n */
start local 6 // int n
6: goto 16
7: .line 851
StackMap locals: java.awt.font.TextLine float float float float int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 5 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 7 /* tlc */
start local 7 // sun.font.TextLineComponent tlc
8: .line 853
aload 7 /* tlc */
invokeinterface sun.font.TextLineComponent.getItalicBounds:()Ljava/awt/geom/Rectangle2D;
astore 8 /* tlcBounds */
start local 8 // java.awt.geom.Rectangle2D tlcBounds
9: .line 854
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 6 /* n */
faload
fstore 9 /* x */
start local 9 // float x
10: .line 855
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 6 /* n */
iconst_1
iadd
faload
fstore 10 /* y */
start local 10 // float y
11: .line 857
fload 1 /* left */
fload 9 /* x */
aload 8 /* tlcBounds */
invokevirtual java.awt.geom.Rectangle2D.getX:()D
d2f
fadd
invokestatic java.lang.Math.min:(FF)F
fstore 1 /* left */
12: .line 858
fload 2 /* right */
fload 9 /* x */
aload 8 /* tlcBounds */
invokevirtual java.awt.geom.Rectangle2D.getMaxX:()D
d2f
fadd
invokestatic java.lang.Math.max:(FF)F
fstore 2 /* right */
13: .line 860
fload 3 /* top */
fload 10 /* y */
aload 8 /* tlcBounds */
invokevirtual java.awt.geom.Rectangle2D.getY:()D
d2f
fadd
invokestatic java.lang.Math.min:(FF)F
fstore 3 /* top */
14: .line 861
fload 4 /* bottom */
fload 10 /* y */
aload 8 /* tlcBounds */
invokevirtual java.awt.geom.Rectangle2D.getMaxY:()D
d2f
fadd
invokestatic java.lang.Math.max:(FF)F
fstore 4 /* bottom */
end local 10 // float y
end local 9 // float x
end local 8 // java.awt.geom.Rectangle2D tlcBounds
end local 7 // sun.font.TextLineComponent tlc
15: .line 850
iinc 5 /* i */ 1
iinc 6 /* n */ 2
StackMap locals:
StackMap stack:
16: iload 5 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 7
end local 6 // int n
end local 5 // int i
17: .line 864
new java.awt.geom.Rectangle2D$Float
dup
fload 1 /* left */
fload 3 /* top */
fload 2 /* right */
fload 1 /* left */
fsub
fload 4 /* bottom */
fload 3 /* top */
fsub
invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
areturn
end local 4 // float bottom
end local 3 // float top
end local 2 // float right
end local 1 // float left
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/awt/font/TextLine;
1 18 1 left F
2 18 2 right F
3 18 3 top F
4 18 4 bottom F
5 17 5 i I
6 17 6 n I
8 15 7 tlc Lsun/font/TextLineComponent;
9 15 8 tlcBounds Ljava/awt/geom/Rectangle2D;
10 15 9 x F
11 15 10 y F
public java.awt.Shape getOutline(java.awt.geom.AffineTransform);
descriptor: (Ljava/awt/geom/AffineTransform;)Ljava/awt/Shape;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 // java.awt.font.TextLine this
start local 1 // java.awt.geom.AffineTransform tx
0: .line 869
new java.awt.geom.GeneralPath
dup
iconst_1
invokespecial java.awt.geom.GeneralPath.<init>:(I)V
astore 2 /* dstShape */
start local 2 // java.awt.geom.GeneralPath dstShape
1: .line 871
iconst_0
istore 3 /* i */
start local 3 // int i
2: iconst_0
istore 4 /* n */
start local 4 // int n
3: goto 7
4: .line 872
StackMap locals: java.awt.geom.GeneralPath int int
StackMap stack:
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
aload 0 /* this */
iload 3 /* i */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
aaload
astore 5 /* tlc */
start local 5 // sun.font.TextLineComponent tlc
5: .line 874
aload 2 /* dstShape */
aload 5 /* tlc */
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 4 /* n */
faload
aload 0 /* this */
getfield java.awt.font.TextLine.locs:[F
iload 4 /* n */
iconst_1
iadd
faload
invokeinterface sun.font.TextLineComponent.getOutline:(FF)Ljava/awt/Shape;
iconst_0
invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
end local 5 // sun.font.TextLineComponent tlc
6: .line 871
iinc 3 /* i */ 1
iinc 4 /* n */ 2
StackMap locals:
StackMap stack:
7: iload 3 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 4
end local 4 // int n
end local 3 // int i
8: .line 877
aload 1 /* tx */
ifnull 10
9: .line 878
aload 2 /* dstShape */
aload 1 /* tx */
invokevirtual java.awt.geom.GeneralPath.transform:(Ljava/awt/geom/AffineTransform;)V
10: .line 880
StackMap locals:
StackMap stack:
aload 2 /* dstShape */
areturn
end local 2 // java.awt.geom.GeneralPath dstShape
end local 1 // java.awt.geom.AffineTransform tx
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/awt/font/TextLine;
0 11 1 tx Ljava/awt/geom/AffineTransform;
1 11 2 dstShape Ljava/awt/geom/GeneralPath;
2 8 3 i I
3 8 4 n I
5 6 5 tlc Lsun/font/TextLineComponent;
MethodParameters:
Name Flags
tx
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 884
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
bipush 16
ishl
1: .line 885
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iconst_0
aaload
invokevirtual java.lang.Object.hashCode:()I
iconst_3
ishl
2: .line 884
ixor
3: .line 885
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsLimit:I
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
isub
4: .line 884
ixor
ireturn
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/awt/font/TextLine;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 889
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1 /* buf */
start local 1 // java.lang.StringBuilder buf
1: .line 891
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 5
3: .line 892
StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 1 /* buf */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iload 2 /* i */
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
4: .line 891
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 3
end local 2 // int i
6: .line 895
aload 1 /* buf */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 // java.lang.StringBuilder buf
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/awt/font/TextLine;
1 7 1 buf Ljava/lang/StringBuilder;
2 6 2 i I
public static java.awt.font.TextLine fastCreateTextLine(java.awt.font.FontRenderContext, char[], java.awt.Font, sun.font.CoreMetrics, java.util.Map<? extends java.text.AttributedCharacterIterator$Attribute, ?>);
descriptor: (Ljava/awt/font/FontRenderContext;[CLjava/awt/Font;Lsun/font/CoreMetrics;Ljava/util/Map;)Ljava/awt/font/TextLine;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=12, locals=19, args_size=5
start local 0 // java.awt.font.FontRenderContext frc
start local 1 // char[] chars
start local 2 // java.awt.Font font
start local 3 // sun.font.CoreMetrics lm
start local 4 // java.util.Map attributes
0: .line 910
iconst_1
istore 5 /* isDirectionLTR */
start local 5 // boolean isDirectionLTR
1: .line 911
aconst_null
astore 6 /* levels */
start local 6 // byte[] levels
2: .line 912
aconst_null
astore 7 /* charsLtoV */
start local 7 // int[] charsLtoV
3: .line 913
aconst_null
astore 8 /* bidi */
start local 8 // java.text.Bidi bidi
4: .line 914
aload 1 /* chars */
arraylength
istore 9 /* characterCount */
start local 9 // int characterCount
5: .line 916
iconst_0
istore 10 /* requiresBidi */
start local 10 // boolean requiresBidi
6: .line 917
aconst_null
astore 11 /* embs */
start local 11 // byte[] embs
7: .line 919
aconst_null
astore 12 /* values */
start local 12 // sun.font.AttributeValues values
8: .line 920
aload 4 /* attributes */
ifnull 26
9: .line 921
aload 4 /* attributes */
invokestatic sun.font.AttributeValues.fromMap:(Ljava/util/Map;)Lsun/font/AttributeValues;
astore 12 /* values */
10: .line 922
aload 12 /* values */
invokevirtual sun.font.AttributeValues.getRunDirection:()I
iflt 17
11: .line 923
aload 12 /* values */
invokevirtual sun.font.AttributeValues.getRunDirection:()I
ifne 12
iconst_1
goto 13
StackMap locals: java.awt.font.FontRenderContext char[] java.awt.Font sun.font.CoreMetrics java.util.Map int byte[] int[] java.text.Bidi int int byte[] sun.font.AttributeValues
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 5 /* isDirectionLTR */
14: .line 924
iload 5 /* isDirectionLTR */
ifeq 15
iconst_0
goto 16
StackMap locals:
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: istore 10 /* requiresBidi */
17: .line 926
StackMap locals:
StackMap stack:
aload 12 /* values */
invokevirtual sun.font.AttributeValues.getBidiEmbedding:()I
ifeq 26
18: .line 927
iconst_1
istore 10 /* requiresBidi */
19: .line 928
aload 12 /* values */
invokevirtual sun.font.AttributeValues.getBidiEmbedding:()I
i2b
istore 13 /* level */
start local 13 // byte level
20: .line 929
iload 9 /* characterCount */
newarray 8
astore 11 /* embs */
21: .line 930
iconst_0
istore 14 /* i */
start local 14 // int i
22: goto 25
23: .line 931
StackMap locals: int int
StackMap stack:
aload 11 /* embs */
iload 14 /* i */
iload 13 /* level */
bastore
24: .line 930
iinc 14 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 14 /* i */
aload 11 /* embs */
arraylength
if_icmplt 23
end local 14 // int i
end local 13 // byte level
26: .line 938
StackMap locals:
StackMap stack:
iload 10 /* requiresBidi */
ifne 28
27: .line 939
aload 1 /* chars */
iconst_0
aload 1 /* chars */
arraylength
invokestatic java.text.Bidi.requiresBidi:([CII)Z
istore 10 /* requiresBidi */
28: .line 942
StackMap locals:
StackMap stack:
iload 10 /* requiresBidi */
ifeq 39
29: .line 943
aload 12 /* values */
ifnonnull 31
30: .line 944
bipush -2
goto 32
31: .line 945
StackMap locals:
StackMap stack:
aload 12 /* values */
invokevirtual sun.font.AttributeValues.getRunDirection:()I
32: .line 943
StackMap locals:
StackMap stack: int
istore 13 /* bidiflags */
start local 13 // int bidiflags
33: .line 947
new java.text.Bidi
dup
aload 1 /* chars */
iconst_0
aload 11 /* embs */
iconst_0
aload 1 /* chars */
arraylength
iload 13 /* bidiflags */
invokespecial java.text.Bidi.<init>:([CI[BIII)V
astore 8 /* bidi */
34: .line 948
aload 8 /* bidi */
invokevirtual java.text.Bidi.isLeftToRight:()Z
ifne 39
35: .line 949
aload 8 /* bidi */
invokestatic sun.font.BidiUtils.getLevels:(Ljava/text/Bidi;)[B
astore 6 /* levels */
36: .line 950
aload 6 /* levels */
invokestatic sun.font.BidiUtils.createVisualToLogicalMap:([B)[I
astore 14 /* charsVtoL */
start local 14 // int[] charsVtoL
37: .line 951
aload 14 /* charsVtoL */
invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
astore 7 /* charsLtoV */
38: .line 952
aload 8 /* bidi */
invokevirtual java.text.Bidi.baseIsLeftToRight:()Z
istore 5 /* isDirectionLTR */
end local 14 // int[] charsVtoL
end local 13 // int bidiflags
39: .line 956
StackMap locals:
StackMap stack:
aload 12 /* values */
invokestatic sun.font.Decoration.getDecoration:(Lsun/font/AttributeValues;)Lsun/font/Decoration;
astore 13 /* decorator */
start local 13 // sun.font.Decoration decorator
40: .line 958
iconst_0
istore 14 /* layoutFlags */
start local 14 // int layoutFlags
41: .line 959
new sun.font.TextLabelFactory
dup
aload 0 /* frc */
aload 1 /* chars */
aload 8 /* bidi */
iload 14 /* layoutFlags */
invokespecial sun.font.TextLabelFactory.<init>:(Ljava/awt/font/FontRenderContext;[CLjava/text/Bidi;I)V
astore 15 /* factory */
start local 15 // sun.font.TextLabelFactory factory
42: .line 961
iconst_1
anewarray sun.font.TextLineComponent
astore 16 /* components */
start local 16 // sun.font.TextLineComponent[] components
43: .line 963
iconst_0
aload 1 /* chars */
arraylength
44: .line 964
aload 1 /* chars */
45: .line 965
aload 7 /* charsLtoV */
aload 6 /* levels */
46: .line 966
aload 15 /* factory */
aload 2 /* font */
aload 3 /* lm */
47: .line 967
aload 0 /* frc */
48: .line 968
aload 13 /* decorator */
49: .line 969
aload 16 /* components */
50: .line 970
iconst_0
51: .line 963
invokestatic java.awt.font.TextLine.createComponentsOnRun:(II[C[I[BLsun/font/TextLabelFactory;Ljava/awt/Font;Lsun/font/CoreMetrics;Ljava/awt/font/FontRenderContext;Lsun/font/Decoration;[Lsun/font/TextLineComponent;I)[Lsun/font/TextLineComponent;
astore 16 /* components */
52: .line 972
aload 16 /* components */
arraylength
istore 17 /* numComponents */
start local 17 // int numComponents
53: .line 973
goto 55
54: .line 974
StackMap locals: java.awt.font.FontRenderContext char[] java.awt.Font sun.font.CoreMetrics java.util.Map int byte[] int[] java.text.Bidi int int byte[] sun.font.AttributeValues sun.font.Decoration int sun.font.TextLabelFactory sun.font.TextLineComponent[] int
StackMap stack:
iinc 17 /* numComponents */ -1
55: .line 973
StackMap locals:
StackMap stack:
aload 16 /* components */
iload 17 /* numComponents */
iconst_1
isub
aaload
ifnull 54
56: .line 977
iload 17 /* numComponents */
aload 16 /* components */
arraylength
if_icmpeq 60
57: .line 978
iload 17 /* numComponents */
anewarray sun.font.TextLineComponent
astore 18 /* temp */
start local 18 // sun.font.TextLineComponent[] temp
58: .line 979
aload 16 /* components */
iconst_0
aload 18 /* temp */
iconst_0
iload 17 /* numComponents */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
59: .line 980
aload 18 /* temp */
astore 16 /* components */
end local 18 // sun.font.TextLineComponent[] temp
60: .line 983
StackMap locals:
StackMap stack:
new java.awt.font.TextLine
dup
aload 0 /* frc */
aload 16 /* components */
aload 3 /* lm */
getfield sun.font.CoreMetrics.baselineOffsets:[F
61: .line 984
aload 1 /* chars */
iconst_0
aload 1 /* chars */
arraylength
aload 7 /* charsLtoV */
aload 6 /* levels */
iload 5 /* isDirectionLTR */
62: .line 983
invokespecial java.awt.font.TextLine.<init>:(Ljava/awt/font/FontRenderContext;[Lsun/font/TextLineComponent;[F[CII[I[BZ)V
areturn
end local 17 // int numComponents
end local 16 // sun.font.TextLineComponent[] components
end local 15 // sun.font.TextLabelFactory factory
end local 14 // int layoutFlags
end local 13 // sun.font.Decoration decorator
end local 12 // sun.font.AttributeValues values
end local 11 // byte[] embs
end local 10 // boolean requiresBidi
end local 9 // int characterCount
end local 8 // java.text.Bidi bidi
end local 7 // int[] charsLtoV
end local 6 // byte[] levels
end local 5 // boolean isDirectionLTR
end local 4 // java.util.Map attributes
end local 3 // sun.font.CoreMetrics lm
end local 2 // java.awt.Font font
end local 1 // char[] chars
end local 0 // java.awt.font.FontRenderContext frc
LocalVariableTable:
Start End Slot Name Signature
0 63 0 frc Ljava/awt/font/FontRenderContext;
0 63 1 chars [C
0 63 2 font Ljava/awt/Font;
0 63 3 lm Lsun/font/CoreMetrics;
0 63 4 attributes Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
1 63 5 isDirectionLTR Z
2 63 6 levels [B
3 63 7 charsLtoV [I
4 63 8 bidi Ljava/text/Bidi;
5 63 9 characterCount I
6 63 10 requiresBidi Z
7 63 11 embs [B
8 63 12 values Lsun/font/AttributeValues;
20 26 13 level B
22 26 14 i I
33 39 13 bidiflags I
37 39 14 charsVtoL [I
40 63 13 decorator Lsun/font/Decoration;
41 63 14 layoutFlags I
42 63 15 factory Lsun/font/TextLabelFactory;
43 63 16 components [Lsun/font/TextLineComponent;
53 63 17 numComponents I
58 60 18 temp [Lsun/font/TextLineComponent;
Signature: (Ljava/awt/font/FontRenderContext;[CLjava/awt/Font;Lsun/font/CoreMetrics;Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;)Ljava/awt/font/TextLine;
MethodParameters:
Name Flags
frc
chars
font
lm
attributes
private static sun.font.TextLineComponent[] expandArray(sun.font.TextLineComponent[]);
descriptor: ([Lsun/font/TextLineComponent;)[Lsun/font/TextLineComponent;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 // sun.font.TextLineComponent[] orig
0: .line 989
aload 0 /* orig */
arraylength
bipush 8
iadd
anewarray sun.font.TextLineComponent
astore 1 /* newComponents */
start local 1 // sun.font.TextLineComponent[] newComponents
1: .line 990
aload 0 /* orig */
iconst_0
aload 1 /* newComponents */
iconst_0
aload 0 /* orig */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: .line 992
aload 1 /* newComponents */
areturn
end local 1 // sun.font.TextLineComponent[] newComponents
end local 0 // sun.font.TextLineComponent[] orig
LocalVariableTable:
Start End Slot Name Signature
0 3 0 orig [Lsun/font/TextLineComponent;
1 3 1 newComponents [Lsun/font/TextLineComponent;
MethodParameters:
Name Flags
orig
public static sun.font.TextLineComponent[] createComponentsOnRun(int, int, char[], int[], byte[], sun.font.TextLabelFactory, java.awt.Font, sun.font.CoreMetrics, java.awt.font.FontRenderContext, sun.font.Decoration, sun.font.TextLineComponent[], int);
descriptor: (II[C[I[BLsun/font/TextLabelFactory;Ljava/awt/Font;Lsun/font/CoreMetrics;Ljava/awt/font/FontRenderContext;Lsun/font/Decoration;[Lsun/font/TextLineComponent;I)[Lsun/font/TextLineComponent;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=17, args_size=12
start local 0 // int runStart
start local 1 // int runLimit
start local 2 // char[] chars
start local 3 // int[] charsLtoV
start local 4 // byte[] levels
start local 5 // sun.font.TextLabelFactory factory
start local 6 // java.awt.Font font
start local 7 // sun.font.CoreMetrics cm
start local 8 // java.awt.font.FontRenderContext frc
start local 9 // sun.font.Decoration decorator
start local 10 // sun.font.TextLineComponent[] components
start local 11 // int numComponents
0: .line 1012
iload 0 /* runStart */
istore 12 /* pos */
start local 12 // int pos
1: .line 1014
StackMap locals: int
StackMap stack:
aload 3 /* charsLtoV */
aload 4 /* levels */
iload 12 /* pos */
iload 1 /* runLimit */
invokestatic java.awt.font.TextLine.firstVisualChunk:([I[BII)I
istore 13 /* chunkLimit */
start local 13 // int chunkLimit
2: .line 1017
StackMap locals: int
StackMap stack:
iload 12 /* pos */
istore 14 /* startPos */
start local 14 // int startPos
3: .line 1020
aload 7 /* cm */
ifnonnull 8
4: .line 1021
aload 6 /* font */
aload 2 /* chars */
iload 14 /* startPos */
iload 13 /* chunkLimit */
aload 8 /* frc */
invokevirtual java.awt.Font.getLineMetrics:([CIILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
astore 16 /* lineMetrics */
start local 16 // java.awt.font.LineMetrics lineMetrics
5: .line 1022
aload 16 /* lineMetrics */
invokestatic sun.font.CoreMetrics.get:(Ljava/awt/font/LineMetrics;)Lsun/font/CoreMetrics;
astore 7 /* cm */
6: .line 1023
aload 16 /* lineMetrics */
invokevirtual java.awt.font.LineMetrics.getNumChars:()I
istore 15 /* lmCount */
end local 16 // java.awt.font.LineMetrics lineMetrics
start local 15 // int lmCount
7: .line 1024
goto 9
end local 15 // int lmCount
8: .line 1026
StackMap locals: int
StackMap stack:
iload 13 /* chunkLimit */
iload 14 /* startPos */
isub
istore 15 /* lmCount */
start local 15 // int lmCount
9: .line 1030
StackMap locals: int
StackMap stack:
aload 5 /* factory */
aload 6 /* font */
aload 7 /* cm */
aload 9 /* decorator */
iload 14 /* startPos */
iload 14 /* startPos */
iload 15 /* lmCount */
iadd
invokevirtual sun.font.TextLabelFactory.createExtended:(Ljava/awt/Font;Lsun/font/CoreMetrics;Lsun/font/Decoration;II)Lsun/font/ExtendedTextLabel;
10: .line 1029
astore 16 /* nextComponent */
start local 16 // sun.font.TextLineComponent nextComponent
11: .line 1032
iinc 11 /* numComponents */ 1
12: .line 1033
iload 11 /* numComponents */
aload 10 /* components */
arraylength
if_icmplt 14
13: .line 1034
aload 10 /* components */
invokestatic java.awt.font.TextLine.expandArray:([Lsun/font/TextLineComponent;)[Lsun/font/TextLineComponent;
astore 10 /* components */
14: .line 1037
StackMap locals: sun.font.TextLineComponent
StackMap stack:
aload 10 /* components */
iload 11 /* numComponents */
iconst_1
isub
aload 16 /* nextComponent */
aastore
15: .line 1039
iload 12 /* pos */
iload 15 /* lmCount */
iadd
istore 12 /* pos */
end local 16 // sun.font.TextLineComponent nextComponent
end local 15 // int lmCount
end local 14 // int startPos
16: .line 1040
iload 12 /* pos */
iload 13 /* chunkLimit */
17: .line 1016
if_icmplt 2
end local 13 // int chunkLimit
18: .line 1042
iload 12 /* pos */
iload 1 /* runLimit */
19: .line 1013
if_icmplt 1
20: .line 1044
aload 10 /* components */
areturn
end local 12 // int pos
end local 11 // int numComponents
end local 10 // sun.font.TextLineComponent[] components
end local 9 // sun.font.Decoration decorator
end local 8 // java.awt.font.FontRenderContext frc
end local 7 // sun.font.CoreMetrics cm
end local 6 // java.awt.Font font
end local 5 // sun.font.TextLabelFactory factory
end local 4 // byte[] levels
end local 3 // int[] charsLtoV
end local 2 // char[] chars
end local 1 // int runLimit
end local 0 // int runStart
LocalVariableTable:
Start End Slot Name Signature
0 21 0 runStart I
0 21 1 runLimit I
0 21 2 chars [C
0 21 3 charsLtoV [I
0 21 4 levels [B
0 21 5 factory Lsun/font/TextLabelFactory;
0 21 6 font Ljava/awt/Font;
0 21 7 cm Lsun/font/CoreMetrics;
0 21 8 frc Ljava/awt/font/FontRenderContext;
0 21 9 decorator Lsun/font/Decoration;
0 21 10 components [Lsun/font/TextLineComponent;
0 21 11 numComponents I
1 21 12 pos I
2 18 13 chunkLimit I
3 16 14 startPos I
7 8 15 lmCount I
9 16 15 lmCount I
5 7 16 lineMetrics Ljava/awt/font/LineMetrics;
11 16 16 nextComponent Lsun/font/TextLineComponent;
MethodParameters:
Name Flags
runStart
runLimit
chars
charsLtoV
levels
factory
font
cm
frc
decorator
components
numComponents
public static sun.font.TextLineComponent[] getComponents(java.awt.font.StyledParagraph, char[], int, int, int[], byte[], sun.font.TextLabelFactory);
descriptor: (Ljava/awt/font/StyledParagraph;[CII[I[BLsun/font/TextLabelFactory;)[Lsun/font/TextLineComponent;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=12, locals=18, args_size=7
start local 0 // java.awt.font.StyledParagraph styledParagraph
start local 1 // char[] chars
start local 2 // int textStart
start local 3 // int textLimit
start local 4 // int[] charsLtoV
start local 5 // byte[] levels
start local 6 // sun.font.TextLabelFactory factory
0: .line 1059
aload 6 /* factory */
invokevirtual sun.font.TextLabelFactory.getFontRenderContext:()Ljava/awt/font/FontRenderContext;
astore 7 /* frc */
start local 7 // java.awt.font.FontRenderContext frc
1: .line 1061
iconst_0
istore 8 /* numComponents */
start local 8 // int numComponents
2: .line 1062
iconst_1
anewarray sun.font.TextLineComponent
astore 9 /* tempComponents */
start local 9 // sun.font.TextLineComponent[] tempComponents
3: .line 1064
iload 2 /* textStart */
istore 10 /* pos */
start local 10 // int pos
4: .line 1066
StackMap locals: java.awt.font.StyledParagraph char[] int int int[] byte[] sun.font.TextLabelFactory java.awt.font.FontRenderContext int sun.font.TextLineComponent[] int
StackMap stack:
aload 0 /* styledParagraph */
iload 10 /* pos */
invokevirtual java.awt.font.StyledParagraph.getRunLimit:(I)I
iload 3 /* textLimit */
invokestatic java.lang.Math.min:(II)I
istore 11 /* runLimit */
start local 11 // int runLimit
5: .line 1068
aload 0 /* styledParagraph */
iload 10 /* pos */
invokevirtual java.awt.font.StyledParagraph.getDecorationAt:(I)Lsun/font/Decoration;
astore 12 /* decorator */
start local 12 // sun.font.Decoration decorator
6: .line 1070
aload 0 /* styledParagraph */
iload 10 /* pos */
invokevirtual java.awt.font.StyledParagraph.getFontOrGraphicAt:(I)Ljava/lang/Object;
astore 13 /* graphicOrFont */
start local 13 // java.lang.Object graphicOrFont
7: .line 1072
aload 13 /* graphicOrFont */
instanceof java.awt.font.GraphicAttribute
ifeq 23
8: .line 1077
aconst_null
astore 14 /* baseRot */
start local 14 // java.awt.geom.AffineTransform baseRot
9: .line 1078
aload 13 /* graphicOrFont */
checkcast java.awt.font.GraphicAttribute
astore 15 /* graphicAttribute */
start local 15 // java.awt.font.GraphicAttribute graphicAttribute
10: .line 1080
StackMap locals: java.awt.font.StyledParagraph char[] int int int[] byte[] sun.font.TextLabelFactory java.awt.font.FontRenderContext int sun.font.TextLineComponent[] int int sun.font.Decoration java.lang.Object java.awt.geom.AffineTransform java.awt.font.GraphicAttribute
StackMap stack:
aload 4 /* charsLtoV */
aload 5 /* levels */
11: .line 1081
iload 10 /* pos */
iload 11 /* runLimit */
12: .line 1080
invokestatic java.awt.font.TextLine.firstVisualChunk:([I[BII)I
istore 16 /* chunkLimit */
start local 16 // int chunkLimit
13: .line 1084
new sun.font.GraphicComponent
dup
aload 15 /* graphicAttribute */
aload 12 /* decorator */
aload 4 /* charsLtoV */
aload 5 /* levels */
iload 10 /* pos */
iload 16 /* chunkLimit */
aload 14 /* baseRot */
invokespecial sun.font.GraphicComponent.<init>:(Ljava/awt/font/GraphicAttribute;Lsun/font/Decoration;[I[BIILjava/awt/geom/AffineTransform;)V
14: .line 1083
astore 17 /* nextGraphic */
start local 17 // sun.font.GraphicComponent nextGraphic
15: .line 1085
iload 16 /* chunkLimit */
istore 10 /* pos */
16: .line 1087
iinc 8 /* numComponents */ 1
17: .line 1088
iload 8 /* numComponents */
aload 9 /* tempComponents */
arraylength
if_icmplt 19
18: .line 1089
aload 9 /* tempComponents */
invokestatic java.awt.font.TextLine.expandArray:([Lsun/font/TextLineComponent;)[Lsun/font/TextLineComponent;
astore 9 /* tempComponents */
19: .line 1092
StackMap locals: int sun.font.GraphicComponent
StackMap stack:
aload 9 /* tempComponents */
iload 8 /* numComponents */
iconst_1
isub
aload 17 /* nextGraphic */
aastore
end local 17 // sun.font.GraphicComponent nextGraphic
end local 16 // int chunkLimit
20: .line 1094
iload 10 /* pos */
iload 11 /* runLimit */
21: .line 1079
if_icmplt 10
end local 15 // java.awt.font.GraphicAttribute graphicAttribute
end local 14 // java.awt.geom.AffineTransform baseRot
22: .line 1095
goto 38
23: .line 1097
StackMap locals: java.awt.font.StyledParagraph char[] int int int[] byte[] sun.font.TextLabelFactory java.awt.font.FontRenderContext int sun.font.TextLineComponent[] int int sun.font.Decoration java.lang.Object
StackMap stack:
aload 13 /* graphicOrFont */
checkcast java.awt.Font
astore 14 /* font */
start local 14 // java.awt.Font font
24: .line 1099
iload 10 /* pos */
iload 11 /* runLimit */
25: .line 1100
aload 1 /* chars */
26: .line 1101
aload 4 /* charsLtoV */
aload 5 /* levels */
27: .line 1102
aload 6 /* factory */
aload 14 /* font */
aconst_null
28: .line 1103
aload 7 /* frc */
29: .line 1104
aload 12 /* decorator */
30: .line 1105
aload 9 /* tempComponents */
31: .line 1106
iload 8 /* numComponents */
32: .line 1099
invokestatic java.awt.font.TextLine.createComponentsOnRun:(II[C[I[BLsun/font/TextLabelFactory;Ljava/awt/Font;Lsun/font/CoreMetrics;Ljava/awt/font/FontRenderContext;Lsun/font/Decoration;[Lsun/font/TextLineComponent;I)[Lsun/font/TextLineComponent;
astore 9 /* tempComponents */
33: .line 1107
iload 11 /* runLimit */
istore 10 /* pos */
34: .line 1108
aload 9 /* tempComponents */
arraylength
istore 8 /* numComponents */
35: .line 1109
goto 37
36: .line 1110
StackMap locals: java.awt.Font
StackMap stack:
iinc 8 /* numComponents */ -1
37: .line 1109
StackMap locals:
StackMap stack:
aload 9 /* tempComponents */
iload 8 /* numComponents */
iconst_1
isub
aaload
ifnull 36
end local 14 // java.awt.Font font
end local 13 // java.lang.Object graphicOrFont
end local 12 // sun.font.Decoration decorator
end local 11 // int runLimit
38: .line 1114
StackMap locals: java.awt.font.StyledParagraph char[] int int int[] byte[] sun.font.TextLabelFactory java.awt.font.FontRenderContext int sun.font.TextLineComponent[] int
StackMap stack:
iload 10 /* pos */
iload 3 /* textLimit */
39: .line 1065
if_icmplt 4
40: .line 1117
aload 9 /* tempComponents */
arraylength
iload 8 /* numComponents */
if_icmpne 43
41: .line 1118
aload 9 /* tempComponents */
astore 11 /* components */
start local 11 // sun.font.TextLineComponent[] components
42: .line 1119
goto 45
end local 11 // sun.font.TextLineComponent[] components
43: .line 1121
StackMap locals:
StackMap stack:
iload 8 /* numComponents */
anewarray sun.font.TextLineComponent
astore 11 /* components */
start local 11 // sun.font.TextLineComponent[] components
44: .line 1122
aload 9 /* tempComponents */
iconst_0
aload 11 /* components */
iconst_0
iload 8 /* numComponents */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
45: .line 1125
StackMap locals: sun.font.TextLineComponent[]
StackMap stack:
aload 11 /* components */
areturn
end local 11 // sun.font.TextLineComponent[] components
end local 10 // int pos
end local 9 // sun.font.TextLineComponent[] tempComponents
end local 8 // int numComponents
end local 7 // java.awt.font.FontRenderContext frc
end local 6 // sun.font.TextLabelFactory factory
end local 5 // byte[] levels
end local 4 // int[] charsLtoV
end local 3 // int textLimit
end local 2 // int textStart
end local 1 // char[] chars
end local 0 // java.awt.font.StyledParagraph styledParagraph
LocalVariableTable:
Start End Slot Name Signature
0 46 0 styledParagraph Ljava/awt/font/StyledParagraph;
0 46 1 chars [C
0 46 2 textStart I
0 46 3 textLimit I
0 46 4 charsLtoV [I
0 46 5 levels [B
0 46 6 factory Lsun/font/TextLabelFactory;
1 46 7 frc Ljava/awt/font/FontRenderContext;
2 46 8 numComponents I
3 46 9 tempComponents [Lsun/font/TextLineComponent;
4 46 10 pos I
5 38 11 runLimit I
6 38 12 decorator Lsun/font/Decoration;
7 38 13 graphicOrFont Ljava/lang/Object;
9 22 14 baseRot Ljava/awt/geom/AffineTransform;
10 22 15 graphicAttribute Ljava/awt/font/GraphicAttribute;
13 20 16 chunkLimit I
15 20 17 nextGraphic Lsun/font/GraphicComponent;
24 38 14 font Ljava/awt/Font;
42 43 11 components [Lsun/font/TextLineComponent;
44 46 11 components [Lsun/font/TextLineComponent;
MethodParameters:
Name Flags
styledParagraph
chars
textStart
textLimit
charsLtoV
levels
factory
public static java.awt.font.TextLine createLineFromText(char[], java.awt.font.StyledParagraph, sun.font.TextLabelFactory, boolean, float[]);
descriptor: ([CLjava/awt/font/StyledParagraph;Lsun/font/TextLabelFactory;Z[F)Ljava/awt/font/TextLine;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=11, locals=9, args_size=5
start local 0 // char[] chars
start local 1 // java.awt.font.StyledParagraph styledParagraph
start local 2 // sun.font.TextLabelFactory factory
start local 3 // boolean isDirectionLTR
start local 4 // float[] baselineOffsets
0: .line 1139
aload 2 /* factory */
iconst_0
aload 0 /* chars */
arraylength
invokevirtual sun.font.TextLabelFactory.setLineContext:(II)V
1: .line 1141
aload 2 /* factory */
invokevirtual sun.font.TextLabelFactory.getLineBidi:()Ljava/text/Bidi;
astore 5 /* lineBidi */
start local 5 // java.text.Bidi lineBidi
2: .line 1142
aconst_null
astore 6 /* charsLtoV */
start local 6 // int[] charsLtoV
3: .line 1143
aconst_null
astore 7 /* levels */
start local 7 // byte[] levels
4: .line 1145
aload 5 /* lineBidi */
ifnull 8
5: .line 1146
aload 5 /* lineBidi */
invokestatic sun.font.BidiUtils.getLevels:(Ljava/text/Bidi;)[B
astore 7 /* levels */
6: .line 1147
aload 7 /* levels */
invokestatic sun.font.BidiUtils.createVisualToLogicalMap:([B)[I
astore 8 /* charsVtoL */
start local 8 // int[] charsVtoL
7: .line 1148
aload 8 /* charsVtoL */
invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
astore 6 /* charsLtoV */
end local 8 // int[] charsVtoL
8: .line 1152
StackMap locals: java.text.Bidi int[] byte[]
StackMap stack:
aload 1 /* styledParagraph */
aload 0 /* chars */
iconst_0
aload 0 /* chars */
arraylength
aload 6 /* charsLtoV */
aload 7 /* levels */
aload 2 /* factory */
invokestatic java.awt.font.TextLine.getComponents:(Ljava/awt/font/StyledParagraph;[CII[I[BLsun/font/TextLabelFactory;)[Lsun/font/TextLineComponent;
9: .line 1151
astore 8 /* components */
start local 8 // sun.font.TextLineComponent[] components
10: .line 1154
new java.awt.font.TextLine
dup
aload 2 /* factory */
invokevirtual sun.font.TextLabelFactory.getFontRenderContext:()Ljava/awt/font/FontRenderContext;
aload 8 /* components */
aload 4 /* baselineOffsets */
11: .line 1155
aload 0 /* chars */
iconst_0
aload 0 /* chars */
arraylength
aload 6 /* charsLtoV */
aload 7 /* levels */
iload 3 /* isDirectionLTR */
12: .line 1154
invokespecial java.awt.font.TextLine.<init>:(Ljava/awt/font/FontRenderContext;[Lsun/font/TextLineComponent;[F[CII[I[BZ)V
areturn
end local 8 // sun.font.TextLineComponent[] components
end local 7 // byte[] levels
end local 6 // int[] charsLtoV
end local 5 // java.text.Bidi lineBidi
end local 4 // float[] baselineOffsets
end local 3 // boolean isDirectionLTR
end local 2 // sun.font.TextLabelFactory factory
end local 1 // java.awt.font.StyledParagraph styledParagraph
end local 0 // char[] chars
LocalVariableTable:
Start End Slot Name Signature
0 13 0 chars [C
0 13 1 styledParagraph Ljava/awt/font/StyledParagraph;
0 13 2 factory Lsun/font/TextLabelFactory;
0 13 3 isDirectionLTR Z
0 13 4 baselineOffsets [F
2 13 5 lineBidi Ljava/text/Bidi;
3 13 6 charsLtoV [I
4 13 7 levels [B
7 8 8 charsVtoL [I
10 13 8 components [Lsun/font/TextLineComponent;
MethodParameters:
Name Flags
chars
styledParagraph
factory
isDirectionLTR
baselineOffsets
private static int[] computeComponentOrder(sun.font.TextLineComponent[], int[]);
descriptor: ([Lsun/font/TextLineComponent;[I)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 // sun.font.TextLineComponent[] components
start local 1 // int[] charsLtoV
0: .line 1174
aconst_null
astore 2 /* componentOrder */
start local 2 // int[] componentOrder
1: .line 1175
aload 1 /* charsLtoV */
ifnull 12
aload 0 /* components */
arraylength
iconst_1
if_icmple 12
2: .line 1176
aload 0 /* components */
arraylength
newarray 10
astore 2 /* componentOrder */
3: .line 1177
iconst_0
istore 3 /* gStart */
start local 3 // int gStart
4: .line 1178
iconst_0
istore 4 /* i */
start local 4 // int i
5: goto 9
6: .line 1179
StackMap locals: int[] int int
StackMap stack:
aload 2 /* componentOrder */
iload 4 /* i */
aload 1 /* charsLtoV */
iload 3 /* gStart */
iaload
iastore
7: .line 1180
iload 3 /* gStart */
aload 0 /* components */
iload 4 /* i */
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 3 /* gStart */
8: .line 1178
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 4 /* i */
aload 0 /* components */
arraylength
if_icmplt 6
end local 4 // int i
10: .line 1183
aload 2 /* componentOrder */
invokestatic sun.font.BidiUtils.createContiguousOrder:([I)[I
astore 2 /* componentOrder */
11: .line 1184
aload 2 /* componentOrder */
invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
astore 2 /* componentOrder */
end local 3 // int gStart
12: .line 1186
StackMap locals:
StackMap stack:
aload 2 /* componentOrder */
areturn
end local 2 // int[] componentOrder
end local 1 // int[] charsLtoV
end local 0 // sun.font.TextLineComponent[] components
LocalVariableTable:
Start End Slot Name Signature
0 13 0 components [Lsun/font/TextLineComponent;
0 13 1 charsLtoV [I
1 13 2 componentOrder [I
4 12 3 gStart I
5 10 4 i I
MethodParameters:
Name Flags
components
charsLtoV
public static java.awt.font.TextLine standardCreateTextLine(java.awt.font.FontRenderContext, java.text.AttributedCharacterIterator, char[], float[]);
descriptor: (Ljava/awt/font/FontRenderContext;Ljava/text/AttributedCharacterIterator;[C[F)Ljava/awt/font/TextLine;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=9, args_size=4
start local 0 // java.awt.font.FontRenderContext frc
start local 1 // java.text.AttributedCharacterIterator text
start local 2 // char[] chars
start local 3 // float[] baselineOffsets
0: .line 1198
new java.awt.font.StyledParagraph
dup
aload 1 /* text */
aload 2 /* chars */
invokespecial java.awt.font.StyledParagraph.<init>:(Ljava/text/AttributedCharacterIterator;[C)V
astore 4 /* styledParagraph */
start local 4 // java.awt.font.StyledParagraph styledParagraph
1: .line 1199
new java.text.Bidi
dup
aload 1 /* text */
invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
astore 5 /* bidi */
start local 5 // java.text.Bidi bidi
2: .line 1200
aload 5 /* bidi */
invokevirtual java.text.Bidi.isLeftToRight:()Z
ifeq 4
3: .line 1201
aconst_null
astore 5 /* bidi */
4: .line 1203
StackMap locals: java.awt.font.StyledParagraph java.text.Bidi
StackMap stack:
iconst_0
istore 6 /* layoutFlags */
start local 6 // int layoutFlags
5: .line 1204
new sun.font.TextLabelFactory
dup
aload 0 /* frc */
aload 2 /* chars */
aload 5 /* bidi */
iload 6 /* layoutFlags */
invokespecial sun.font.TextLabelFactory.<init>:(Ljava/awt/font/FontRenderContext;[CLjava/text/Bidi;I)V
astore 7 /* factory */
start local 7 // sun.font.TextLabelFactory factory
6: .line 1206
iconst_1
istore 8 /* isDirectionLTR */
start local 8 // boolean isDirectionLTR
7: .line 1207
aload 5 /* bidi */
ifnull 9
8: .line 1208
aload 5 /* bidi */
invokevirtual java.text.Bidi.baseIsLeftToRight:()Z
istore 8 /* isDirectionLTR */
9: .line 1210
StackMap locals: int sun.font.TextLabelFactory int
StackMap stack:
aload 2 /* chars */
aload 4 /* styledParagraph */
aload 7 /* factory */
iload 8 /* isDirectionLTR */
aload 3 /* baselineOffsets */
invokestatic java.awt.font.TextLine.createLineFromText:([CLjava/awt/font/StyledParagraph;Lsun/font/TextLabelFactory;Z[F)Ljava/awt/font/TextLine;
areturn
end local 8 // boolean isDirectionLTR
end local 7 // sun.font.TextLabelFactory factory
end local 6 // int layoutFlags
end local 5 // java.text.Bidi bidi
end local 4 // java.awt.font.StyledParagraph styledParagraph
end local 3 // float[] baselineOffsets
end local 2 // char[] chars
end local 1 // java.text.AttributedCharacterIterator text
end local 0 // java.awt.font.FontRenderContext frc
LocalVariableTable:
Start End Slot Name Signature
0 10 0 frc Ljava/awt/font/FontRenderContext;
0 10 1 text Ljava/text/AttributedCharacterIterator;
0 10 2 chars [C
0 10 3 baselineOffsets [F
1 10 4 styledParagraph Ljava/awt/font/StyledParagraph;
2 10 5 bidi Ljava/text/Bidi;
5 10 6 layoutFlags I
6 10 7 factory Lsun/font/TextLabelFactory;
7 10 8 isDirectionLTR Z
MethodParameters:
Name Flags
frc
text
chars
baselineOffsets
static boolean advanceToFirstFont(java.text.AttributedCharacterIterator);
descriptor: (Ljava/text/AttributedCharacterIterator;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 // java.text.AttributedCharacterIterator aci
0: .line 1255
aload 0 /* aci */
invokeinterface java.text.AttributedCharacterIterator.first:()C
istore 1 /* ch */
start local 1 // char ch
1: .line 1256
goto 5
2: .line 1260
StackMap locals: int
StackMap stack:
aload 0 /* aci */
getstatic java.awt.font.TextAttribute.CHAR_REPLACEMENT:Ljava/awt/font/TextAttribute;
invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
ifnonnull 4
3: .line 1261
iconst_1
ireturn
4: .line 1257
StackMap locals:
StackMap stack:
aload 0 /* aci */
aload 0 /* aci */
invokeinterface java.text.AttributedCharacterIterator.getRunLimit:()I
invokeinterface java.text.AttributedCharacterIterator.setIndex:(I)C
istore 1 /* ch */
5: .line 1256
StackMap locals:
StackMap stack:
iload 1 /* ch */
ldc 65535
if_icmpne 2
end local 1 // char ch
6: .line 1265
iconst_0
ireturn
end local 0 // java.text.AttributedCharacterIterator aci
LocalVariableTable:
Start End Slot Name Signature
0 7 0 aci Ljava/text/AttributedCharacterIterator;
1 6 1 ch C
MethodParameters:
Name Flags
aci
static float[] getNormalizedOffsets(float[], byte);
descriptor: ([FB)[F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 // float[] baselineOffsets
start local 1 // byte baseline
0: .line 1270
aload 0 /* baselineOffsets */
iload 1 /* baseline */
faload
fconst_0
fcmpl
ifeq 9
1: .line 1271
aload 0 /* baselineOffsets */
iload 1 /* baseline */
faload
fstore 2 /* base */
start local 2 // float base
2: .line 1272
aload 0 /* baselineOffsets */
arraylength
newarray 6
astore 3 /* temp */
start local 3 // float[] temp
3: .line 1273
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 7
5: .line 1274
StackMap locals: float float[] int
StackMap stack:
aload 3 /* temp */
iload 4 /* i */
aload 0 /* baselineOffsets */
iload 4 /* i */
faload
fload 2 /* base */
fsub
fastore
6: .line 1273
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
aload 3 /* temp */
arraylength
if_icmplt 5
end local 4 // int i
8: .line 1275
aload 3 /* temp */
astore 0 /* baselineOffsets */
end local 3 // float[] temp
end local 2 // float base
9: .line 1277
StackMap locals:
StackMap stack:
aload 0 /* baselineOffsets */
areturn
end local 1 // byte baseline
end local 0 // float[] baselineOffsets
LocalVariableTable:
Start End Slot Name Signature
0 10 0 baselineOffsets [F
0 10 1 baseline B
2 9 2 base F
3 9 3 temp [F
4 8 4 i I
MethodParameters:
Name Flags
baselineOffsets
baseline
static java.awt.Font getFontAtCurrentPos(java.text.AttributedCharacterIterator);
descriptor: (Ljava/text/AttributedCharacterIterator;)Ljava/awt/Font;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 // java.text.AttributedCharacterIterator aci
0: .line 1282
aload 0 /* aci */
getstatic java.awt.font.TextAttribute.FONT:Ljava/awt/font/TextAttribute;
invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
astore 1 /* value */
start local 1 // java.lang.Object value
1: .line 1283
aload 1 /* value */
ifnull 3
2: .line 1284
aload 1 /* value */
checkcast java.awt.Font
areturn
3: .line 1286
StackMap locals: java.lang.Object
StackMap stack:
aload 0 /* aci */
getstatic java.awt.font.TextAttribute.FAMILY:Ljava/awt/font/TextAttribute;
invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
ifnull 5
4: .line 1287
aload 0 /* aci */
invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
invokestatic java.awt.Font.getFont:(Ljava/util/Map;)Ljava/awt/Font;
areturn
5: .line 1290
StackMap locals:
StackMap stack:
aload 0 /* aci */
invokestatic sun.text.CodePointIterator.create:(Ljava/text/CharacterIterator;)Lsun/text/CodePointIterator;
invokevirtual sun.text.CodePointIterator.next:()I
istore 2 /* ch */
start local 2 // int ch
6: .line 1291
iload 2 /* ch */
iconst_m1
if_icmpeq 9
7: .line 1292
invokestatic sun.font.FontResolver.getInstance:()Lsun/font/FontResolver;
astore 3 /* resolver */
start local 3 // sun.font.FontResolver resolver
8: .line 1293
aload 3 /* resolver */
aload 3 /* resolver */
iload 2 /* ch */
invokevirtual sun.font.FontResolver.getFontIndex:(I)I
aload 0 /* aci */
invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
invokevirtual sun.font.FontResolver.getFont:(ILjava/util/Map;)Ljava/awt/Font;
areturn
end local 3 // sun.font.FontResolver resolver
9: .line 1295
StackMap locals: int
StackMap stack:
aconst_null
areturn
end local 2 // int ch
end local 1 // java.lang.Object value
end local 0 // java.text.AttributedCharacterIterator aci
LocalVariableTable:
Start End Slot Name Signature
0 10 0 aci Ljava/text/AttributedCharacterIterator;
1 10 1 value Ljava/lang/Object;
6 10 2 ch I
8 9 3 resolver Lsun/font/FontResolver;
MethodParameters:
Name Flags
aci
private static int firstVisualChunk(int[], byte[], int, int);
descriptor: ([I[BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=4
start local 0 // int[] order
start local 1 // byte[] direction
start local 2 // int start
start local 3 // int limit
0: .line 1304
aload 0 /* order */
ifnull 4
aload 1 /* direction */
ifnull 4
1: .line 1305
aload 1 /* direction */
iload 2 /* start */
baload
istore 4 /* dir */
start local 4 // byte dir
2: .line 1306
StackMap locals: int
StackMap stack:
iinc 2 /* start */ 1
iload 2 /* start */
iload 3 /* limit */
if_icmpge 3
aload 1 /* direction */
iload 2 /* start */
baload
iload 4 /* dir */
if_icmpeq 2
3: .line 1307
StackMap locals:
StackMap stack:
iload 2 /* start */
ireturn
end local 4 // byte dir
4: .line 1309
StackMap locals:
StackMap stack:
iload 3 /* limit */
ireturn
end local 3 // int limit
end local 2 // int start
end local 1 // byte[] direction
end local 0 // int[] order
LocalVariableTable:
Start End Slot Name Signature
0 5 0 order [I
0 5 1 direction [B
0 5 2 start I
0 5 3 limit I
2 4 4 dir B
MethodParameters:
Name Flags
order
direction
start
limit
public java.awt.font.TextLine getJustifiedLine(float, float, int, int);
descriptor: (FFII)Ljava/awt/font/TextLine;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=23, args_size=5
start local 0 // java.awt.font.TextLine this
start local 1 // float justificationWidth
start local 2 // float justifyRatio
start local 3 // int justStart
start local 4 // int justLimit
0: .line 1318
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
anewarray sun.font.TextLineComponent
astore 5 /* newComponents */
start local 5 // sun.font.TextLineComponent[] newComponents
1: .line 1319
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
iconst_0
aload 5 /* newComponents */
iconst_0
aload 0 /* this */
getfield java.awt.font.TextLine.fComponents:[Lsun/font/TextLineComponent;
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: .line 1323
fconst_0
fstore 6 /* justifyDelta */
start local 6 // float justifyDelta
3: .line 1324
iconst_0
istore 7 /* rejustify */
start local 7 // boolean rejustify
4: .line 1326
StackMap locals: sun.font.TextLineComponent[] float int
StackMap stack:
aload 5 /* newComponents */
iconst_0
aload 0 /* this */
invokevirtual java.awt.font.TextLine.characterCount:()I
invokestatic java.awt.font.TextLine.getAdvanceBetween:([Lsun/font/TextLineComponent;II)F
pop
5: .line 1331
aload 5 /* newComponents */
iload 3 /* justStart */
iload 4 /* justLimit */
invokestatic java.awt.font.TextLine.getAdvanceBetween:([Lsun/font/TextLineComponent;II)F
fstore 8 /* justifyAdvance */
start local 8 // float justifyAdvance
6: .line 1334
fload 1 /* justificationWidth */
fload 8 /* justifyAdvance */
fsub
fload 2 /* justifyRatio */
fmul
fstore 6 /* justifyDelta */
7: .line 1340
aload 5 /* newComponents */
arraylength
newarray 10
astore 9 /* infoPositions */
start local 9 // int[] infoPositions
8: .line 1341
iconst_0
istore 10 /* infoCount */
start local 10 // int infoCount
9: .line 1342
iconst_0
istore 11 /* visIndex */
start local 11 // int visIndex
10: goto 15
11: .line 1343
StackMap locals: java.awt.font.TextLine float float int int sun.font.TextLineComponent[] float int float int[] int int
StackMap stack:
aload 0 /* this */
iload 11 /* visIndex */
invokevirtual java.awt.font.TextLine.getComponentLogicalIndex:(I)I
istore 12 /* logIndex */
start local 12 // int logIndex
12: .line 1344
aload 9 /* infoPositions */
iload 12 /* logIndex */
iload 10 /* infoCount */
iastore
13: .line 1345
iload 10 /* infoCount */
aload 5 /* newComponents */
iload 12 /* logIndex */
aaload
invokeinterface sun.font.TextLineComponent.getNumJustificationInfos:()I
iadd
istore 10 /* infoCount */
end local 12 // int logIndex
14: .line 1342
iinc 11 /* visIndex */ 1
StackMap locals:
StackMap stack:
15: iload 11 /* visIndex */
aload 5 /* newComponents */
arraylength
if_icmplt 11
end local 11 // int visIndex
16: .line 1347
iload 10 /* infoCount */
anewarray java.awt.font.GlyphJustificationInfo
astore 11 /* infos */
start local 11 // java.awt.font.GlyphJustificationInfo[] infos
17: .line 1350
iconst_0
istore 12 /* compStart */
start local 12 // int compStart
18: .line 1351
iconst_0
istore 13 /* i */
start local 13 // int i
19: goto 30
20: .line 1352
StackMap locals: java.awt.font.TextLine float float int int sun.font.TextLineComponent[] float int float int[] int java.awt.font.GlyphJustificationInfo[] int int
StackMap stack:
aload 5 /* newComponents */
iload 13 /* i */
aaload
astore 14 /* comp */
start local 14 // sun.font.TextLineComponent comp
21: .line 1353
aload 14 /* comp */
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
istore 15 /* compLength */
start local 15 // int compLength
22: .line 1354
iload 12 /* compStart */
iload 15 /* compLength */
iadd
istore 16 /* compLimit */
start local 16 // int compLimit
23: .line 1355
iload 16 /* compLimit */
iload 3 /* justStart */
if_icmple 29
24: .line 1356
iconst_0
iload 3 /* justStart */
iload 12 /* compStart */
isub
invokestatic java.lang.Math.max:(II)I
istore 17 /* rangeMin */
start local 17 // int rangeMin
25: .line 1357
iload 15 /* compLength */
iload 4 /* justLimit */
iload 12 /* compStart */
isub
invokestatic java.lang.Math.min:(II)I
istore 18 /* rangeMax */
start local 18 // int rangeMax
26: .line 1358
aload 14 /* comp */
aload 11 /* infos */
aload 9 /* infoPositions */
iload 13 /* i */
iaload
iload 17 /* rangeMin */
iload 18 /* rangeMax */
invokeinterface sun.font.TextLineComponent.getJustificationInfos:([Ljava/awt/font/GlyphJustificationInfo;III)V
27: .line 1360
iload 16 /* compLimit */
iload 4 /* justLimit */
if_icmplt 29
28: .line 1361
goto 31
end local 18 // int rangeMax
end local 17 // int rangeMin
end local 16 // int compLimit
end local 15 // int compLength
end local 14 // sun.font.TextLineComponent comp
29: .line 1351
StackMap locals:
StackMap stack:
iinc 13 /* i */ 1
StackMap locals:
StackMap stack:
30: iload 13 /* i */
aload 5 /* newComponents */
arraylength
if_icmplt 20
end local 13 // int i
31: .line 1368
StackMap locals:
StackMap stack:
iconst_0
istore 13 /* infoStart */
start local 13 // int infoStart
32: .line 1369
iload 10 /* infoCount */
istore 14 /* infoLimit */
start local 14 // int infoLimit
33: .line 1370
goto 35
34: .line 1371
StackMap locals: int int
StackMap stack:
iinc 13 /* infoStart */ 1
35: .line 1370
StackMap locals:
StackMap stack:
iload 13 /* infoStart */
iload 14 /* infoLimit */
if_icmpge 38
aload 11 /* infos */
iload 13 /* infoStart */
aaload
ifnull 34
36: .line 1374
goto 38
37: .line 1375
StackMap locals:
StackMap stack:
iinc 14 /* infoLimit */ -1
38: .line 1374
StackMap locals:
StackMap stack:
iload 14 /* infoLimit */
iload 13 /* infoStart */
if_icmple 39
aload 11 /* infos */
iload 14 /* infoLimit */
iconst_1
isub
aaload
ifnull 37
39: .line 1379
StackMap locals:
StackMap stack:
new java.awt.font.TextJustifier
dup
aload 11 /* infos */
iload 13 /* infoStart */
iload 14 /* infoLimit */
invokespecial java.awt.font.TextJustifier.<init>:([Ljava/awt/font/GlyphJustificationInfo;II)V
astore 15 /* justifier */
start local 15 // java.awt.font.TextJustifier justifier
40: .line 1381
aload 15 /* justifier */
fload 6 /* justifyDelta */
invokevirtual java.awt.font.TextJustifier.justify:(F)[F
astore 16 /* deltas */
start local 16 // float[] deltas
41: .line 1384
iconst_0
istore 17 /* wantRejustify */
start local 17 // boolean wantRejustify
42: .line 1385
iconst_1
newarray 4
astore 18 /* flags */
start local 18 // boolean[] flags
43: .line 1388
iconst_0
istore 12 /* compStart */
44: .line 1389
iconst_0
istore 19 /* i */
start local 19 // int i
45: goto 57
46: .line 1390
StackMap locals: java.awt.font.TextLine float float int int sun.font.TextLineComponent[] float int float int[] int java.awt.font.GlyphJustificationInfo[] int int int java.awt.font.TextJustifier float[] int boolean[] int
StackMap stack:
aload 5 /* newComponents */
iload 19 /* i */
aaload
astore 20 /* comp */
start local 20 // sun.font.TextLineComponent comp
47: .line 1391
aload 20 /* comp */
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
istore 21 /* compLength */
start local 21 // int compLength
48: .line 1392
iload 12 /* compStart */
iload 21 /* compLength */
iadd
istore 22 /* compLimit */
start local 22 // int compLimit
49: .line 1393
iload 22 /* compLimit */
iload 3 /* justStart */
if_icmple 56
50: .line 1394
iconst_0
iload 3 /* justStart */
iload 12 /* compStart */
isub
invokestatic java.lang.Math.max:(II)I
pop
51: .line 1395
iload 21 /* compLength */
iload 4 /* justLimit */
iload 12 /* compStart */
isub
invokestatic java.lang.Math.min:(II)I
pop
52: .line 1396
aload 5 /* newComponents */
iload 19 /* i */
aload 20 /* comp */
aload 16 /* deltas */
aload 9 /* infoPositions */
iload 19 /* i */
iaload
iconst_2
imul
aload 18 /* flags */
invokeinterface sun.font.TextLineComponent.applyJustificationDeltas:([FI[Z)Lsun/font/TextLineComponent;
aastore
53: .line 1398
iload 17 /* wantRejustify */
aload 18 /* flags */
iconst_0
baload
ior
istore 17 /* wantRejustify */
54: .line 1400
iload 22 /* compLimit */
iload 4 /* justLimit */
if_icmplt 56
55: .line 1401
goto 58
end local 22 // int compLimit
end local 21 // int compLength
end local 20 // sun.font.TextLineComponent comp
56: .line 1389
StackMap locals:
StackMap stack:
iinc 19 /* i */ 1
StackMap locals:
StackMap stack:
57: iload 19 /* i */
aload 5 /* newComponents */
arraylength
if_icmplt 46
end local 19 // int i
58: .line 1406
StackMap locals:
StackMap stack:
iload 17 /* wantRejustify */
ifeq 59
iload 7 /* rejustify */
ifne 59
iconst_1
goto 60
StackMap locals:
StackMap stack:
59: iconst_0
StackMap locals:
StackMap stack: int
60: istore 7 /* rejustify */
end local 18 // boolean[] flags
end local 17 // boolean wantRejustify
end local 16 // float[] deltas
end local 15 // java.awt.font.TextJustifier justifier
end local 14 // int infoLimit
end local 13 // int infoStart
end local 12 // int compStart
end local 11 // java.awt.font.GlyphJustificationInfo[] infos
end local 10 // int infoCount
end local 9 // int[] infoPositions
end local 8 // float justifyAdvance
61: .line 1407
iload 7 /* rejustify */
ifne 4
62: .line 1409
new java.awt.font.TextLine
dup
aload 0 /* this */
getfield java.awt.font.TextLine.frc:Ljava/awt/font/FontRenderContext;
aload 5 /* newComponents */
aload 0 /* this */
getfield java.awt.font.TextLine.fBaselineOffsets:[F
aload 0 /* this */
getfield java.awt.font.TextLine.fChars:[C
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsStart:I
63: .line 1410
aload 0 /* this */
getfield java.awt.font.TextLine.fCharsLimit:I
aload 0 /* this */
getfield java.awt.font.TextLine.fCharLogicalOrder:[I
aload 0 /* this */
getfield java.awt.font.TextLine.fCharLevels:[B
64: .line 1411
aload 0 /* this */
getfield java.awt.font.TextLine.fIsDirectionLTR:Z
65: .line 1409
invokespecial java.awt.font.TextLine.<init>:(Ljava/awt/font/FontRenderContext;[Lsun/font/TextLineComponent;[F[CII[I[BZ)V
areturn
end local 7 // boolean rejustify
end local 6 // float justifyDelta
end local 5 // sun.font.TextLineComponent[] newComponents
end local 4 // int justLimit
end local 3 // int justStart
end local 2 // float justifyRatio
end local 1 // float justificationWidth
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Ljava/awt/font/TextLine;
0 66 1 justificationWidth F
0 66 2 justifyRatio F
0 66 3 justStart I
0 66 4 justLimit I
1 66 5 newComponents [Lsun/font/TextLineComponent;
3 66 6 justifyDelta F
4 66 7 rejustify Z
6 61 8 justifyAdvance F
8 61 9 infoPositions [I
9 61 10 infoCount I
10 16 11 visIndex I
12 14 12 logIndex I
17 61 11 infos [Ljava/awt/font/GlyphJustificationInfo;
18 61 12 compStart I
19 31 13 i I
21 29 14 comp Lsun/font/TextLineComponent;
22 29 15 compLength I
23 29 16 compLimit I
25 29 17 rangeMin I
26 29 18 rangeMax I
32 61 13 infoStart I
33 61 14 infoLimit I
40 61 15 justifier Ljava/awt/font/TextJustifier;
41 61 16 deltas [F
42 61 17 wantRejustify Z
43 61 18 flags [Z
45 58 19 i I
47 56 20 comp Lsun/font/TextLineComponent;
48 56 21 compLength I
49 56 22 compLimit I
MethodParameters:
Name Flags
justificationWidth
justifyRatio
justStart
justLimit
public static float getAdvanceBetween(sun.font.TextLineComponent[], int, int);
descriptor: ([Lsun/font/TextLineComponent;II)F
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=11, args_size=3
start local 0 // sun.font.TextLineComponent[] components
start local 1 // int start
start local 2 // int limit
0: .line 1416
fconst_0
fstore 3 /* advance */
start local 3 // float advance
1: .line 1418
iconst_0
istore 4 /* tlcStart */
start local 4 // int tlcStart
2: .line 1419
iconst_0
istore 5 /* i */
start local 5 // int i
3: goto 15
4: .line 1420
StackMap locals: float int int
StackMap stack:
aload 0 /* components */
iload 5 /* i */
aaload
astore 6 /* comp */
start local 6 // sun.font.TextLineComponent comp
5: .line 1422
aload 6 /* comp */
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
istore 7 /* tlcLength */
start local 7 // int tlcLength
6: .line 1423
iload 4 /* tlcStart */
iload 7 /* tlcLength */
iadd
istore 8 /* tlcLimit */
start local 8 // int tlcLimit
7: .line 1424
iload 8 /* tlcLimit */
iload 1 /* start */
if_icmple 13
8: .line 1425
iconst_0
iload 1 /* start */
iload 4 /* tlcStart */
isub
invokestatic java.lang.Math.max:(II)I
istore 9 /* measureStart */
start local 9 // int measureStart
9: .line 1426
iload 7 /* tlcLength */
iload 2 /* limit */
iload 4 /* tlcStart */
isub
invokestatic java.lang.Math.min:(II)I
istore 10 /* measureLimit */
start local 10 // int measureLimit
10: .line 1427
fload 3 /* advance */
aload 6 /* comp */
iload 9 /* measureStart */
iload 10 /* measureLimit */
invokeinterface sun.font.TextLineComponent.getAdvanceBetween:(II)F
fadd
fstore 3 /* advance */
11: .line 1428
iload 8 /* tlcLimit */
iload 2 /* limit */
if_icmplt 13
12: .line 1429
goto 16
end local 10 // int measureLimit
end local 9 // int measureStart
13: .line 1433
StackMap locals: sun.font.TextLineComponent int int
StackMap stack:
iload 8 /* tlcLimit */
istore 4 /* tlcStart */
end local 8 // int tlcLimit
end local 7 // int tlcLength
end local 6 // sun.font.TextLineComponent comp
14: .line 1419
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 5 /* i */
aload 0 /* components */
arraylength
if_icmplt 4
end local 5 // int i
16: .line 1436
StackMap locals:
StackMap stack:
fload 3 /* advance */
freturn
end local 4 // int tlcStart
end local 3 // float advance
end local 2 // int limit
end local 1 // int start
end local 0 // sun.font.TextLineComponent[] components
LocalVariableTable:
Start End Slot Name Signature
0 17 0 components [Lsun/font/TextLineComponent;
0 17 1 start I
0 17 2 limit I
1 17 3 advance F
2 17 4 tlcStart I
3 16 5 i I
5 14 6 comp Lsun/font/TextLineComponent;
6 14 7 tlcLength I
7 14 8 tlcLimit I
9 13 9 measureStart I
10 13 10 measureLimit I
MethodParameters:
Name Flags
components
start
limit
sun.font.LayoutPathImpl getLayoutPath();
descriptor: ()Lsun/font/LayoutPathImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // java.awt.font.TextLine this
0: .line 1440
aload 0 /* this */
getfield java.awt.font.TextLine.lp:Lsun/font/LayoutPathImpl;
areturn
end local 0 // java.awt.font.TextLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextLine;
}
SourceFile: "TextLine.java"
NestMembers:
java.awt.font.TextLine$1 java.awt.font.TextLine$2 java.awt.font.TextLine$3 java.awt.font.TextLine$4 java.awt.font.TextLine$Function java.awt.font.TextLine$TextLineMetrics
InnerClasses:
java.awt.font.TextLine$1
java.awt.font.TextLine$2
java.awt.font.TextLine$3
java.awt.font.TextLine$4
private abstract Function = java.awt.font.TextLine$Function of java.awt.font.TextLine
final TextLineMetrics = java.awt.font.TextLine$TextLineMetrics of java.awt.font.TextLine
public Double = java.awt.geom.Point2D$Double of java.awt.geom.Point2D
public Float = java.awt.geom.Point2D$Float of java.awt.geom.Point2D
public Float = java.awt.geom.Rectangle2D$Float of java.awt.geom.Rectangle2D
public Attribute = java.text.AttributedCharacterIterator$Attribute of java.text.AttributedCharacterIterator
public EmptyPath = sun.font.LayoutPathImpl$EmptyPath of sun.font.LayoutPathImpl
public final SegmentPath = sun.font.LayoutPathImpl$SegmentPath of sun.font.LayoutPathImpl
public final SegmentPathBuilder = sun.font.LayoutPathImpl$SegmentPathBuilder of sun.font.LayoutPathImpl