public final class sun.font.LayoutPathImpl$SegmentPath extends sun.font.LayoutPathImpl
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.font.LayoutPathImpl$SegmentPath
super_class: sun.font.LayoutPathImpl
{
private double[] data;
descriptor: [D
flags: (0x0002) ACC_PRIVATE
sun.font.LayoutPathImpl$EndType etype;
descriptor: Lsun/font/LayoutPathImpl$EndType;
flags: (0x0000)
public static sun.font.LayoutPathImpl$SegmentPath get(sun.font.LayoutPathImpl$EndType, double[]);
descriptor: (Lsun/font/LayoutPathImpl$EndType;[D)Lsun/font/LayoutPathImpl$SegmentPath;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 // sun.font.LayoutPathImpl$EndType etype
start local 1 // double[] pts
0: .line 317
new sun.font.LayoutPathImpl$SegmentPathBuilder
dup
invokespecial sun.font.LayoutPathImpl$SegmentPathBuilder.<init>:()V
aload 0 /* etype */
aload 1 /* pts */
invokevirtual sun.font.LayoutPathImpl$SegmentPathBuilder.build:(Lsun/font/LayoutPathImpl$EndType;[D)Lsun/font/LayoutPathImpl$SegmentPath;
areturn
end local 1 // double[] pts
end local 0 // sun.font.LayoutPathImpl$EndType etype
LocalVariableTable:
Start End Slot Name Signature
0 1 0 etype Lsun/font/LayoutPathImpl$EndType;
0 1 1 pts [D
MethodParameters:
Name Flags
etype
pts
void <init>(double[], sun.font.LayoutPathImpl$EndType);
descriptor: ([DLsun/font/LayoutPathImpl$EndType;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // double[] data
start local 2 // sun.font.LayoutPathImpl$EndType etype
0: .line 324
aload 0 /* this */
invokespecial sun.font.LayoutPathImpl.<init>:()V
1: .line 325
aload 0 /* this */
aload 1 /* data */
putfield sun.font.LayoutPathImpl$SegmentPath.data:[D
2: .line 326
aload 0 /* this */
aload 2 /* etype */
putfield sun.font.LayoutPathImpl$SegmentPath.etype:Lsun/font/LayoutPathImpl$EndType;
3: .line 327
return
end local 2 // sun.font.LayoutPathImpl$EndType etype
end local 1 // double[] data
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 4 1 data [D
0 4 2 etype Lsun/font/LayoutPathImpl$EndType;
MethodParameters:
Name Flags
data
etype
public void pathToPoint(java.awt.geom.Point2D, boolean, java.awt.geom.Point2D);
descriptor: (Ljava/awt/geom/Point2D;ZLjava/awt/geom/Point2D;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // java.awt.geom.Point2D location
start local 2 // boolean preceding
start local 3 // java.awt.geom.Point2D point
0: .line 334
aload 0 /* this */
aload 1 /* location */
iload 2 /* preceding */
aload 3 /* point */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.locateAndGetIndex:(Ljava/awt/geom/Point2D;ZLjava/awt/geom/Point2D;)I
pop
1: .line 335
return
end local 3 // java.awt.geom.Point2D point
end local 2 // boolean preceding
end local 1 // java.awt.geom.Point2D location
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 2 1 location Ljava/awt/geom/Point2D;
0 2 2 preceding Z
0 2 3 point Ljava/awt/geom/Point2D;
MethodParameters:
Name Flags
location
preceding
point
public boolean pointToPath(java.awt.geom.Point2D, java.awt.geom.Point2D);
descriptor: (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=54, args_size=3
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // java.awt.geom.Point2D pt
start local 2 // java.awt.geom.Point2D result
0: .line 397
aload 1 /* pt */
invokevirtual java.awt.geom.Point2D.getX:()D
dstore 3 /* x */
start local 3 // double x
1: .line 398
aload 1 /* pt */
invokevirtual java.awt.geom.Point2D.getY:()D
dstore 5 /* y */
start local 5 // double y
2: .line 400
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_0
daload
dstore 7 /* bx */
start local 7 // double bx
3: .line 401
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_1
daload
dstore 9 /* by */
start local 9 // double by
4: .line 402
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_2
daload
dstore 11 /* bl */
start local 11 // double bl
5: .line 405
ldc 1.7976931348623157E308
dstore 13 /* cd2 */
start local 13 // double cd2
6: .line 406
dconst_0
dstore 15 /* cx */
start local 15 // double cx
7: .line 407
dconst_0
dstore 17 /* cy */
start local 17 // double cy
8: .line 408
dconst_0
dstore 19 /* cl */
start local 19 // double cl
9: .line 409
iconst_0
istore 21 /* ci */
start local 21 // int ci
10: .line 411
iconst_3
istore 22 /* i */
start local 22 // int i
11: goto 58
12: .line 412
StackMap locals: sun.font.LayoutPathImpl$SegmentPath java.awt.geom.Point2D java.awt.geom.Point2D double double double double double double double double double int int
StackMap stack:
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 22 /* i */
daload
dstore 23 /* nx */
start local 23 // double nx
13: .line 413
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 22 /* i */
iconst_1
iadd
daload
dstore 25 /* ny */
start local 25 // double ny
14: .line 414
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 22 /* i */
iconst_2
iadd
daload
dstore 27 /* nl */
start local 27 // double nl
15: .line 416
dload 23 /* nx */
dload 7 /* bx */
dsub
dstore 29 /* dx */
start local 29 // double dx
16: .line 417
dload 25 /* ny */
dload 9 /* by */
dsub
dstore 31 /* dy */
start local 31 // double dy
17: .line 418
dload 27 /* nl */
dload 11 /* bl */
dsub
dstore 33 /* dl */
start local 33 // double dl
18: .line 420
dload 3 /* x */
dload 7 /* bx */
dsub
dstore 35 /* px */
start local 35 // double px
19: .line 421
dload 5 /* y */
dload 9 /* by */
dsub
dstore 37 /* py */
start local 37 // double py
20: .line 426
dload 29 /* dx */
dload 35 /* px */
dmul
dload 31 /* dy */
dload 37 /* py */
dmul
dadd
dstore 39 /* dot */
start local 39 // double dot
21: .line 430
dload 33 /* dl */
dconst_0
dcmpl
ifeq 25
22: .line 431
dload 39 /* dot */
dconst_0
dcmpg
ifge 30
23: .line 432
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.etype:Lsun/font/LayoutPathImpl$EndType;
invokevirtual sun.font.LayoutPathImpl$EndType.isExtended:()Z
ifeq 25
24: .line 433
iload 22 /* i */
iconst_3
if_icmpeq 30
25: .line 434
StackMap locals: sun.font.LayoutPathImpl$SegmentPath java.awt.geom.Point2D java.awt.geom.Point2D double double double double double double double double double int int double double double double double double double double double
StackMap stack:
dload 7 /* bx */
dstore 41 /* vcx */
start local 41 // double vcx
26: .line 435
dload 9 /* by */
dstore 43 /* vcy */
start local 43 // double vcy
27: .line 436
dload 11 /* bl */
dstore 45 /* vcl */
start local 45 // double vcl
28: .line 437
iload 22 /* i */
istore 47 /* vi */
start local 47 // int vi
29: .line 438
goto 45
end local 47 // int vi
end local 45 // double vcl
end local 43 // double vcy
end local 41 // double vcx
30: .line 439
StackMap locals:
StackMap stack:
dload 33 /* dl */
dload 33 /* dl */
dmul
dstore 48 /* l2 */
start local 48 // double l2
31: .line 440
dload 39 /* dot */
dload 48 /* l2 */
dcmpg
ifle 34
32: .line 441
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.etype:Lsun/font/LayoutPathImpl$EndType;
invokevirtual sun.font.LayoutPathImpl$EndType.isExtended:()Z
ifeq 40
33: .line 442
iload 22 /* i */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
iconst_3
isub
if_icmpne 40
34: .line 443
StackMap locals: sun.font.LayoutPathImpl$SegmentPath java.awt.geom.Point2D java.awt.geom.Point2D double double double double double double double double double int int double double double double double double double double double top top top top top top top double
StackMap stack:
dload 39 /* dot */
dload 48 /* l2 */
ddiv
dstore 50 /* p */
start local 50 // double p
35: .line 444
dload 7 /* bx */
dload 50 /* p */
dload 29 /* dx */
dmul
dadd
dstore 41 /* vcx */
start local 41 // double vcx
36: .line 445
dload 9 /* by */
dload 50 /* p */
dload 31 /* dy */
dmul
dadd
dstore 43 /* vcy */
start local 43 // double vcy
37: .line 446
dload 11 /* bl */
dload 50 /* p */
dload 33 /* dl */
dmul
dadd
dstore 45 /* vcl */
start local 45 // double vcl
38: .line 447
iload 22 /* i */
istore 47 /* vi */
end local 50 // double p
start local 47 // int vi
39: .line 448
goto 45
end local 47 // int vi
end local 45 // double vcl
end local 43 // double vcy
end local 41 // double vcx
40: .line 449
StackMap locals:
StackMap stack:
iload 22 /* i */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
iconst_3
isub
if_icmpne 54
41: .line 450
dload 23 /* nx */
dstore 41 /* vcx */
start local 41 // double vcx
42: .line 451
dload 25 /* ny */
dstore 43 /* vcy */
start local 43 // double vcy
43: .line 452
dload 27 /* nl */
dstore 45 /* vcl */
start local 45 // double vcl
44: .line 453
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
istore 47 /* vi */
end local 48 // double l2
start local 47 // int vi
45: .line 460
StackMap locals: sun.font.LayoutPathImpl$SegmentPath java.awt.geom.Point2D java.awt.geom.Point2D double double double double double double double double double int int double double double double double double double double double double double double int
StackMap stack:
dload 3 /* x */
dload 41 /* vcx */
dsub
dstore 48 /* tdx */
start local 48 // double tdx
46: .line 461
dload 5 /* y */
dload 43 /* vcy */
dsub
dstore 50 /* tdy */
start local 50 // double tdy
47: .line 462
dload 48 /* tdx */
dload 48 /* tdx */
dmul
dload 50 /* tdy */
dload 50 /* tdy */
dmul
dadd
dstore 52 /* td2 */
start local 52 // double td2
48: .line 463
dload 52 /* td2 */
dload 13 /* cd2 */
dcmpg
ifgt 54
49: .line 464
dload 52 /* td2 */
dstore 13 /* cd2 */
50: .line 465
dload 41 /* vcx */
dstore 15 /* cx */
51: .line 466
dload 43 /* vcy */
dstore 17 /* cy */
52: .line 467
dload 45 /* vcl */
dstore 19 /* cl */
53: .line 468
iload 47 /* vi */
istore 21 /* ci */
end local 52 // double td2
end local 50 // double tdy
end local 48 // double tdx
end local 47 // int vi
end local 45 // double vcl
end local 43 // double vcy
end local 41 // double vcx
54: .line 472
StackMap locals: sun.font.LayoutPathImpl$SegmentPath java.awt.geom.Point2D java.awt.geom.Point2D double double double double double double double double double int int double double double double double double double double double
StackMap stack:
dload 23 /* nx */
dstore 7 /* bx */
55: .line 473
dload 25 /* ny */
dstore 9 /* by */
56: .line 474
dload 27 /* nl */
dstore 11 /* bl */
end local 39 // double dot
end local 37 // double py
end local 35 // double px
end local 33 // double dl
end local 31 // double dy
end local 29 // double dx
end local 27 // double nl
end local 25 // double ny
end local 23 // double nx
57: .line 411
iinc 22 /* i */ 3
StackMap locals: sun.font.LayoutPathImpl$SegmentPath java.awt.geom.Point2D java.awt.geom.Point2D double double double double double double double double double int int
StackMap stack:
58: iload 22 /* i */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
if_icmplt 12
end local 22 // int i
59: .line 478
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_3
isub
daload
dstore 7 /* bx */
60: .line 479
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_2
isub
daload
dstore 9 /* by */
61: .line 480
dload 15 /* cx */
dload 7 /* bx */
dcmpl
ifne 62
dload 17 /* cy */
dload 9 /* by */
dcmpl
ifeq 69
62: .line 481
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
daload
dstore 22 /* nx */
start local 22 // double nx
63: .line 482
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_1
iadd
daload
dstore 24 /* ny */
start local 24 // double ny
64: .line 483
dload 13 /* cd2 */
invokestatic java.lang.Math.sqrt:(D)D
dstore 26 /* co */
start local 26 // double co
65: .line 484
dload 3 /* x */
dload 15 /* cx */
dsub
dload 24 /* ny */
dload 9 /* by */
dsub
dmul
dload 5 /* y */
dload 17 /* cy */
dsub
dload 22 /* nx */
dload 7 /* bx */
dsub
dmul
dcmpl
ifle 67
66: .line 485
dload 26 /* co */
dneg
dstore 26 /* co */
67: .line 487
StackMap locals: double double double
StackMap stack:
aload 2 /* result */
dload 19 /* cl */
dload 26 /* co */
invokevirtual java.awt.geom.Point2D.setLocation:(DD)V
68: .line 488
iconst_0
ireturn
end local 26 // double co
end local 24 // double ny
end local 22 // double nx
69: .line 490
StackMap locals:
StackMap stack:
iload 21 /* ci */
iconst_3
if_icmpeq 70
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_1
isub
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_4
isub
daload
dcmpl
ifeq 70
iconst_1
goto 71
StackMap locals:
StackMap stack:
70: iconst_0
StackMap locals:
StackMap stack: int
71: istore 22 /* havePrev */
start local 22 // boolean havePrev
72: .line 491
iload 21 /* ci */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
if_icmpeq 73
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_1
isub
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 21 /* ci */
iconst_2
iadd
daload
dcmpl
ifeq 73
iconst_1
goto 74
StackMap locals: int
StackMap stack:
73: iconst_0
StackMap locals:
StackMap stack: int
74: istore 23 /* haveFoll */
start local 23 // boolean haveFoll
75: .line 492
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.etype:Lsun/font/LayoutPathImpl$EndType;
invokevirtual sun.font.LayoutPathImpl$EndType.isExtended:()Z
ifeq 77
iload 21 /* ci */
iconst_3
if_icmpeq 76
iload 21 /* ci */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
if_icmpne 77
StackMap locals: int
StackMap stack:
76: iconst_1
goto 78
StackMap locals:
StackMap stack:
77: iconst_0
StackMap locals:
StackMap stack: int
78: istore 24 /* doExtend */
start local 24 // boolean doExtend
79: .line 493
iload 22 /* havePrev */
ifeq 89
iload 23 /* haveFoll */
ifeq 89
80: .line 494
new java.awt.geom.Point2D$Double
dup
dload 3 /* x */
dload 5 /* y */
invokespecial java.awt.geom.Point2D$Double.<init>:(DD)V
astore 25 /* pp */
start local 25 // java.awt.geom.Point2D$Double pp
81: .line 495
aload 0 /* this */
iload 21 /* ci */
iconst_3
isub
iload 24 /* doExtend */
aload 25 /* pp */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.calcoffset:(IZLjava/awt/geom/Point2D;)V
82: .line 496
new java.awt.geom.Point2D$Double
dup
dload 3 /* x */
dload 5 /* y */
invokespecial java.awt.geom.Point2D$Double.<init>:(DD)V
astore 26 /* fp */
start local 26 // java.awt.geom.Point2D$Double fp
83: .line 497
aload 0 /* this */
iload 21 /* ci */
iload 24 /* doExtend */
aload 26 /* fp */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.calcoffset:(IZLjava/awt/geom/Point2D;)V
84: .line 498
aload 25 /* pp */
getfield java.awt.geom.Point2D$Double.y:D
invokestatic java.lang.Math.abs:(D)D
aload 26 /* fp */
getfield java.awt.geom.Point2D$Double.y:D
invokestatic java.lang.Math.abs:(D)D
dcmpl
ifle 87
85: .line 499
aload 2 /* result */
aload 25 /* pp */
invokevirtual java.awt.geom.Point2D.setLocation:(Ljava/awt/geom/Point2D;)V
86: .line 500
iconst_1
ireturn
87: .line 502
StackMap locals: int java.awt.geom.Point2D$Double java.awt.geom.Point2D$Double
StackMap stack:
aload 2 /* result */
aload 26 /* fp */
invokevirtual java.awt.geom.Point2D.setLocation:(Ljava/awt/geom/Point2D;)V
88: .line 503
iconst_0
ireturn
end local 26 // java.awt.geom.Point2D$Double fp
end local 25 // java.awt.geom.Point2D$Double pp
89: .line 505
StackMap locals:
StackMap stack:
iload 22 /* havePrev */
ifeq 93
90: .line 506
aload 2 /* result */
dload 3 /* x */
dload 5 /* y */
invokevirtual java.awt.geom.Point2D.setLocation:(DD)V
91: .line 507
aload 0 /* this */
iload 21 /* ci */
iconst_3
isub
iload 24 /* doExtend */
aload 2 /* result */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.calcoffset:(IZLjava/awt/geom/Point2D;)V
92: .line 508
iconst_1
ireturn
93: .line 510
StackMap locals:
StackMap stack:
aload 2 /* result */
dload 3 /* x */
dload 5 /* y */
invokevirtual java.awt.geom.Point2D.setLocation:(DD)V
94: .line 511
aload 0 /* this */
iload 21 /* ci */
iload 24 /* doExtend */
aload 2 /* result */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.calcoffset:(IZLjava/awt/geom/Point2D;)V
95: .line 512
iconst_0
ireturn
end local 24 // boolean doExtend
end local 23 // boolean haveFoll
end local 22 // boolean havePrev
end local 21 // int ci
end local 19 // double cl
end local 17 // double cy
end local 15 // double cx
end local 13 // double cd2
end local 11 // double bl
end local 9 // double by
end local 7 // double bx
end local 5 // double y
end local 3 // double x
end local 2 // java.awt.geom.Point2D result
end local 1 // java.awt.geom.Point2D pt
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 96 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 96 1 pt Ljava/awt/geom/Point2D;
0 96 2 result Ljava/awt/geom/Point2D;
1 96 3 x D
2 96 5 y D
3 96 7 bx D
4 96 9 by D
5 96 11 bl D
6 96 13 cd2 D
7 96 15 cx D
8 96 17 cy D
9 96 19 cl D
10 96 21 ci I
11 59 22 i I
13 57 23 nx D
14 57 25 ny D
15 57 27 nl D
16 57 29 dx D
17 57 31 dy D
18 57 33 dl D
19 57 35 px D
20 57 37 py D
21 57 39 dot D
26 30 41 vcx D
36 40 41 vcx D
42 54 41 vcx D
27 30 43 vcy D
37 40 43 vcy D
43 54 43 vcy D
28 30 45 vcl D
38 40 45 vcl D
44 54 45 vcl D
29 30 47 vi I
39 40 47 vi I
45 54 47 vi I
31 45 48 l2 D
35 39 50 p D
46 54 48 tdx D
47 54 50 tdy D
48 54 52 td2 D
63 69 22 nx D
64 69 24 ny D
65 69 26 co D
72 96 22 havePrev Z
75 96 23 haveFoll Z
79 96 24 doExtend Z
81 89 25 pp Ljava/awt/geom/Point2D$Double;
83 89 26 fp Ljava/awt/geom/Point2D$Double;
MethodParameters:
Name Flags
pt
result
private void calcoffset(int, boolean, java.awt.geom.Point2D);
descriptor: (IZLjava/awt/geom/Point2D;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=22, args_size=4
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // int index
start local 2 // boolean doExtend
start local 3 // java.awt.geom.Point2D result
0: .line 525
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
iconst_3
isub
daload
dstore 4 /* bx */
start local 4 // double bx
1: .line 526
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
iconst_2
isub
daload
dstore 6 /* by */
start local 6 // double by
2: .line 527
aload 3 /* result */
invokevirtual java.awt.geom.Point2D.getX:()D
dload 4 /* bx */
dsub
dstore 8 /* px */
start local 8 // double px
3: .line 528
aload 3 /* result */
invokevirtual java.awt.geom.Point2D.getY:()D
dload 6 /* by */
dsub
dstore 10 /* py */
start local 10 // double py
4: .line 529
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
daload
dload 4 /* bx */
dsub
dstore 12 /* dx */
start local 12 // double dx
5: .line 530
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
iconst_1
iadd
daload
dload 6 /* by */
dsub
dstore 14 /* dy */
start local 14 // double dy
6: .line 531
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
iconst_2
iadd
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
iconst_1
isub
daload
dsub
dstore 16 /* l */
start local 16 // double l
7: .line 535
dload 8 /* px */
dload 12 /* dx */
dmul
dload 10 /* py */
dload 14 /* dy */
dmul
dadd
dload 16 /* l */
ddiv
dstore 18 /* rx */
start local 18 // double rx
8: .line 536
dload 8 /* px */
dload 14 /* dy */
dneg
dmul
dload 10 /* py */
dload 12 /* dx */
dmul
dadd
dload 16 /* l */
ddiv
dstore 20 /* ry */
start local 20 // double ry
9: .line 537
iload 2 /* doExtend */
ifne 12
10: .line 538
dload 18 /* rx */
dconst_0
dcmpg
ifge 11
dconst_0
dstore 18 /* rx */
goto 12
11: .line 539
StackMap locals: sun.font.LayoutPathImpl$SegmentPath int int java.awt.geom.Point2D double double double double double double double double double
StackMap stack:
dload 18 /* rx */
dload 16 /* l */
dcmpl
ifle 12
dload 16 /* l */
dstore 18 /* rx */
12: .line 541
StackMap locals:
StackMap stack:
dload 18 /* rx */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* index */
iconst_1
isub
daload
dadd
dstore 18 /* rx */
13: .line 542
aload 3 /* result */
dload 18 /* rx */
dload 20 /* ry */
invokevirtual java.awt.geom.Point2D.setLocation:(DD)V
14: .line 543
return
end local 20 // double ry
end local 18 // double rx
end local 16 // double l
end local 14 // double dy
end local 12 // double dx
end local 10 // double py
end local 8 // double px
end local 6 // double by
end local 4 // double bx
end local 3 // java.awt.geom.Point2D result
end local 2 // boolean doExtend
end local 1 // int index
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 15 1 index I
0 15 2 doExtend Z
0 15 3 result Ljava/awt/geom/Point2D;
1 15 4 bx D
2 15 6 by D
3 15 8 px D
4 15 10 py D
5 15 12 dx D
6 15 14 dy D
7 15 16 l D
8 15 18 rx D
9 15 20 ry D
MethodParameters:
Name Flags
index
doExtend
result
public java.awt.Shape mapShape(java.awt.Shape);
descriptor: (Ljava/awt/Shape;)Ljava/awt/Shape;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // java.awt.Shape s
0: .line 550
new sun.font.LayoutPathImpl$SegmentPath$Mapper
dup
aload 0 /* this */
invokespecial sun.font.LayoutPathImpl$SegmentPath$Mapper.<init>:(Lsun/font/LayoutPathImpl$SegmentPath;)V
aload 1 /* s */
invokevirtual sun.font.LayoutPathImpl$SegmentPath$Mapper.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
areturn
end local 1 // java.awt.Shape s
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 1 1 s Ljava/awt/Shape;
MethodParameters:
Name Flags
s
public double start();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
0: .line 554
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_2
daload
dreturn
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/LayoutPathImpl$SegmentPath;
public double end();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
0: .line 558
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
iconst_1
isub
daload
dreturn
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/LayoutPathImpl$SegmentPath;
public double length();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
0: .line 562
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
iconst_1
isub
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_2
daload
dsub
dreturn
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/LayoutPathImpl$SegmentPath;
private double getClosedAdvance(double, boolean);
descriptor: (DZ)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // double a
start local 3 // boolean preceding
0: .line 573
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.etype:Lsun/font/LayoutPathImpl$EndType;
invokevirtual sun.font.LayoutPathImpl$EndType.isClosed:()Z
ifeq 7
1: .line 574
dload 1 /* a */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_2
daload
dsub
dstore 1 /* a */
2: .line 575
dload 1 /* a */
aload 0 /* this */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.length:()D
ddiv
d2i
istore 4 /* count */
start local 4 // int count
3: .line 576
dload 1 /* a */
iload 4 /* count */
i2d
aload 0 /* this */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.length:()D
dmul
dsub
dstore 1 /* a */
4: .line 577
dload 1 /* a */
dconst_0
dcmpg
iflt 5
dload 1 /* a */
dconst_0
dcmpl
ifne 6
iload 3 /* preceding */
ifeq 6
5: .line 578
StackMap locals: int
StackMap stack:
dload 1 /* a */
aload 0 /* this */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.length:()D
dadd
dstore 1 /* a */
6: .line 581
StackMap locals:
StackMap stack:
dload 1 /* a */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iconst_2
daload
dadd
dstore 1 /* a */
end local 4 // int count
7: .line 583
StackMap locals:
StackMap stack:
dload 1 /* a */
dreturn
end local 3 // boolean preceding
end local 1 // double a
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 8 1 a D
0 8 3 preceding Z
3 7 4 count I
MethodParameters:
Name Flags
a
preceding
private int getSegmentIndexForAdvance(double, boolean);
descriptor: (DZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // double a
start local 3 // boolean preceding
0: .line 605
aload 0 /* this */
dload 1 /* a */
iload 3 /* preceding */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.getClosedAdvance:(DZ)D
dstore 1 /* a */
1: .line 610
iconst_5
istore 4 /* i */
start local 4 // int i
2: aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
iconst_1
isub
istore 5 /* lim */
start local 5 // int lim
3: goto 8
4: .line 611
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 4 /* i */
daload
dstore 6 /* v */
start local 6 // double v
5: .line 612
dload 1 /* a */
dload 6 /* v */
dcmpg
iflt 9
dload 1 /* a */
dload 6 /* v */
dcmpl
ifne 7
iload 3 /* preceding */
ifeq 7
6: .line 613
goto 9
end local 6 // double v
7: .line 610
StackMap locals:
StackMap stack:
iinc 4 /* i */ 3
StackMap locals:
StackMap stack:
8: iload 4 /* i */
iload 5 /* lim */
if_icmplt 4
9: .line 616
StackMap locals:
StackMap stack:
iload 4 /* i */
iconst_2
isub
ireturn
end local 5 // int lim
end local 4 // int i
end local 3 // boolean preceding
end local 1 // double a
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 10 1 a D
0 10 3 preceding Z
2 10 4 i I
3 10 5 lim I
5 7 6 v D
MethodParameters:
Name Flags
a
preceding
private void map(int, double, double, java.awt.geom.Point2D);
descriptor: (IDDLjava/awt/geom/Point2D;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=17, args_size=5
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // int seg
start local 2 // double a
start local 4 // double o
start local 6 // java.awt.geom.Point2D pt
0: .line 625
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_3
isub
daload
dsub
dstore 7 /* dx */
start local 7 // double dx
1: .line 626
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_1
iadd
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_2
isub
daload
dsub
dstore 9 /* dy */
start local 9 // double dy
2: .line 627
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_2
iadd
daload
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_1
isub
daload
dsub
dstore 11 /* dl */
start local 11 // double dl
3: .line 629
dload 7 /* dx */
dload 11 /* dl */
ddiv
dstore 13 /* ux */
start local 13 // double ux
4: .line 630
dload 9 /* dy */
dload 11 /* dl */
ddiv
dstore 15 /* uy */
start local 15 // double uy
5: .line 632
dload 2 /* a */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_1
isub
daload
dsub
dstore 2 /* a */
6: .line 634
aload 6 /* pt */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_3
isub
daload
dload 2 /* a */
dload 13 /* ux */
dmul
dadd
dload 4 /* o */
dload 15 /* uy */
dmul
dsub
7: .line 635
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 1 /* seg */
iconst_2
isub
daload
dload 2 /* a */
dload 15 /* uy */
dmul
dadd
dload 4 /* o */
dload 13 /* ux */
dmul
dadd
8: .line 634
invokevirtual java.awt.geom.Point2D.setLocation:(DD)V
9: .line 636
return
end local 15 // double uy
end local 13 // double ux
end local 11 // double dl
end local 9 // double dy
end local 7 // double dx
end local 6 // java.awt.geom.Point2D pt
end local 4 // double o
end local 2 // double a
end local 1 // int seg
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 10 1 seg I
0 10 2 a D
0 10 4 o D
0 10 6 pt Ljava/awt/geom/Point2D;
1 10 7 dx D
2 10 9 dy D
3 10 11 dl D
4 10 13 ux D
5 10 15 uy D
MethodParameters:
Name Flags
seg
a
o
pt
private int locateAndGetIndex(java.awt.geom.Point2D, boolean, java.awt.geom.Point2D);
descriptor: (Ljava/awt/geom/Point2D;ZLjava/awt/geom/Point2D;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=4
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
start local 1 // java.awt.geom.Point2D loc
start local 2 // boolean preceding
start local 3 // java.awt.geom.Point2D result
0: .line 642
aload 1 /* loc */
invokevirtual java.awt.geom.Point2D.getX:()D
dstore 4 /* a */
start local 4 // double a
1: .line 643
aload 1 /* loc */
invokevirtual java.awt.geom.Point2D.getY:()D
dstore 6 /* o */
start local 6 // double o
2: .line 644
aload 0 /* this */
dload 4 /* a */
iload 2 /* preceding */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.getSegmentIndexForAdvance:(DZ)I
istore 8 /* seg */
start local 8 // int seg
3: .line 645
aload 0 /* this */
iload 8 /* seg */
dload 4 /* a */
dload 6 /* o */
aload 3 /* result */
invokevirtual sun.font.LayoutPathImpl$SegmentPath.map:(IDDLjava/awt/geom/Point2D;)V
4: .line 647
iload 8 /* seg */
ireturn
end local 8 // int seg
end local 6 // double o
end local 4 // double a
end local 3 // java.awt.geom.Point2D result
end local 2 // boolean preceding
end local 1 // java.awt.geom.Point2D loc
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/LayoutPathImpl$SegmentPath;
0 5 1 loc Ljava/awt/geom/Point2D;
0 5 2 preceding Z
0 5 3 result Ljava/awt/geom/Point2D;
1 5 4 a D
2 5 6 o D
3 5 8 seg I
MethodParameters:
Name Flags
loc
preceding
result
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 // sun.font.LayoutPathImpl$SegmentPath this
0: .line 933
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1 /* b */
start local 1 // java.lang.StringBuilder b
1: .line 934
aload 1 /* b */
ldc "{"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: .line 935
aload 1 /* b */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.etype:Lsun/font/LayoutPathImpl$EndType;
invokevirtual sun.font.LayoutPathImpl$EndType.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: .line 936
aload 1 /* b */
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: .line 937
iconst_0
istore 2 /* i */
start local 2 // int i
5: goto 19
6: .line 938
StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 2 /* i */
ifle 8
7: .line 939
aload 1 /* b */
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: .line 941
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 2 /* i */
daload
ldc 100.0
dmul
d2i
i2f
ldc 100.0
fdiv
fstore 3 /* x */
start local 3 // float x
9: .line 942
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 2 /* i */
iconst_1
iadd
daload
ldc 100.0
dmul
d2i
i2f
ldc 100.0
fdiv
fstore 4 /* y */
start local 4 // float y
10: .line 943
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
iload 2 /* i */
iconst_2
iadd
daload
ldc 10.0
dmul
d2i
i2f
ldc 10.0
fdiv
fstore 5 /* l */
start local 5 // float l
11: .line 944
aload 1 /* b */
ldc "{"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: .line 945
aload 1 /* b */
fload 3 /* x */
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
pop
13: .line 946
aload 1 /* b */
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: .line 947
aload 1 /* b */
fload 4 /* y */
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
pop
15: .line 948
aload 1 /* b */
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: .line 949
aload 1 /* b */
fload 5 /* l */
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
pop
17: .line 950
aload 1 /* b */
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 // float l
end local 4 // float y
end local 3 // float x
18: .line 937
iinc 2 /* i */ 3
StackMap locals:
StackMap stack:
19: iload 2 /* i */
aload 0 /* this */
getfield sun.font.LayoutPathImpl$SegmentPath.data:[D
arraylength
if_icmplt 6
end local 2 // int i
20: .line 952
aload 1 /* b */
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: .line 953
aload 1 /* b */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 // java.lang.StringBuilder b
end local 0 // sun.font.LayoutPathImpl$SegmentPath this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/font/LayoutPathImpl$SegmentPath;
1 22 1 b Ljava/lang/StringBuilder;
5 20 2 i I
9 18 3 x F
10 18 4 y F
11 18 5 l F
}
SourceFile: "LayoutPathImpl.java"
NestHost: sun.font.LayoutPathImpl
InnerClasses:
public Double = java.awt.geom.Point2D$Double of java.awt.geom.Point2D
public final EndType = sun.font.LayoutPathImpl$EndType of sun.font.LayoutPathImpl
public final SegmentPath = sun.font.LayoutPathImpl$SegmentPath of sun.font.LayoutPathImpl
LineInfo = sun.font.LayoutPathImpl$SegmentPath$LineInfo of sun.font.LayoutPathImpl$SegmentPath
Mapper = sun.font.LayoutPathImpl$SegmentPath$Mapper of sun.font.LayoutPathImpl$SegmentPath
Segment = sun.font.LayoutPathImpl$SegmentPath$Segment of sun.font.LayoutPathImpl$SegmentPath
public final SegmentPathBuilder = sun.font.LayoutPathImpl$SegmentPathBuilder of sun.font.LayoutPathImpl