class sun.font.CMap$CMapFormat4 extends sun.font.CMap
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.font.CMap$CMapFormat4
super_class: sun.font.CMap
{
int segCount;
descriptor: I
flags: (0x0000)
int entrySelector;
descriptor: I
flags: (0x0000)
int rangeShift;
descriptor: I
flags: (0x0000)
char[] endCount;
descriptor: [C
flags: (0x0000)
char[] startCount;
descriptor: [C
flags: (0x0000)
short[] idDelta;
descriptor: [S
flags: (0x0000)
char[] idRangeOffset;
descriptor: [C
flags: (0x0000)
char[] glyphIds;
descriptor: [C
flags: (0x0000)
void <init>(java.nio.ByteBuffer, int, char[]);
descriptor: (Ljava/nio/ByteBuffer;I[C)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=4
start local 0 // sun.font.CMap$CMapFormat4 this
start local 1 // java.nio.ByteBuffer bbuffer
start local 2 // int offset
start local 3 // char[] xlat
0: .line 463
aload 0 /* this */
invokespecial sun.font.CMap.<init>:()V
1: .line 465
aload 0 /* this */
aload 3 /* xlat */
putfield sun.font.CMap$CMapFormat4.xlat:[C
2: .line 467
aload 1 /* bbuffer */
iload 2 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
3: .line 468
aload 1 /* bbuffer */
invokevirtual java.nio.ByteBuffer.asCharBuffer:()Ljava/nio/CharBuffer;
astore 4 /* buffer */
start local 4 // java.nio.CharBuffer buffer
4: .line 469
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
pop
5: .line 470
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
istore 5 /* subtableLength */
start local 5 // int subtableLength
6: .line 479
iload 2 /* offset */
iload 5 /* subtableLength */
iadd
aload 1 /* bbuffer */
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmple 8
7: .line 480
aload 1 /* bbuffer */
invokevirtual java.nio.ByteBuffer.capacity:()I
iload 2 /* offset */
isub
istore 5 /* subtableLength */
8: .line 482
StackMap locals: sun.font.CMap$CMapFormat4 java.nio.ByteBuffer int char[] java.nio.CharBuffer int
StackMap stack:
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
pop
9: .line 483
aload 0 /* this */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
iconst_2
idiv
putfield sun.font.CMap$CMapFormat4.segCount:I
10: .line 484
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
pop
11: .line 485
aload 0 /* this */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
putfield sun.font.CMap$CMapFormat4.entrySelector:I
12: .line 486
aload 0 /* this */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
iconst_2
idiv
putfield sun.font.CMap$CMapFormat4.rangeShift:I
13: .line 487
aload 0 /* this */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
newarray 5
putfield sun.font.CMap$CMapFormat4.startCount:[C
14: .line 488
aload 0 /* this */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
newarray 5
putfield sun.font.CMap$CMapFormat4.endCount:[C
15: .line 489
aload 0 /* this */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
newarray 9
putfield sun.font.CMap$CMapFormat4.idDelta:[S
16: .line 490
aload 0 /* this */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
newarray 5
putfield sun.font.CMap$CMapFormat4.idRangeOffset:[C
17: .line 492
iconst_0
istore 6 /* i */
start local 6 // int i
18: goto 21
19: .line 493
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.endCount:[C
iload 6 /* i */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
20: .line 492
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
21: iload 6 /* i */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
if_icmplt 19
end local 6 // int i
22: .line 495
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
pop
23: .line 496
iconst_0
istore 6 /* i */
start local 6 // int i
24: goto 27
25: .line 497
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.startCount:[C
iload 6 /* i */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
26: .line 496
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
27: iload 6 /* i */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
if_icmplt 25
end local 6 // int i
28: .line 500
iconst_0
istore 6 /* i */
start local 6 // int i
29: goto 32
30: .line 501
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.idDelta:[S
iload 6 /* i */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
i2s
sastore
31: .line 500
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
32: iload 6 /* i */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
if_icmplt 30
end local 6 // int i
33: .line 504
iconst_0
istore 6 /* i */
start local 6 // int i
34: goto 38
35: .line 505
StackMap locals:
StackMap stack:
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
istore 7 /* ctmp */
start local 7 // char ctmp
36: .line 506
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.idRangeOffset:[C
iload 6 /* i */
iload 7 /* ctmp */
iconst_1
ishr
ldc 65535
iand
i2c
castore
end local 7 // char ctmp
37: .line 504
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
38: iload 6 /* i */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
if_icmplt 35
end local 6 // int i
39: .line 511
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
bipush 8
imul
bipush 16
iadd
iconst_2
idiv
istore 6 /* pos */
start local 6 // int pos
40: .line 512
aload 4 /* buffer */
iload 6 /* pos */
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
41: .line 513
iload 5 /* subtableLength */
iconst_2
idiv
iload 6 /* pos */
isub
istore 7 /* numGlyphIds */
start local 7 // int numGlyphIds
42: .line 514
aload 0 /* this */
iload 7 /* numGlyphIds */
newarray 5
putfield sun.font.CMap$CMapFormat4.glyphIds:[C
43: .line 515
iconst_0
istore 8 /* i */
start local 8 // int i
44: goto 47
45: .line 516
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.glyphIds:[C
iload 8 /* i */
aload 4 /* buffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
46: .line 515
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
47: iload 8 /* i */
iload 7 /* numGlyphIds */
if_icmplt 45
end local 8 // int i
48: .line 534
return
end local 7 // int numGlyphIds
end local 6 // int pos
end local 5 // int subtableLength
end local 4 // java.nio.CharBuffer buffer
end local 3 // char[] xlat
end local 2 // int offset
end local 1 // java.nio.ByteBuffer bbuffer
end local 0 // sun.font.CMap$CMapFormat4 this
LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lsun/font/CMap$CMapFormat4;
0 49 1 bbuffer Ljava/nio/ByteBuffer;
0 49 2 offset I
0 49 3 xlat [C
4 49 4 buffer Ljava/nio/CharBuffer;
6 49 5 subtableLength I
18 22 6 i I
24 28 6 i I
29 33 6 i I
34 39 6 i I
36 37 7 ctmp C
40 49 6 pos I
42 49 7 numGlyphIds I
44 48 8 i I
MethodParameters:
Name Flags
bbuffer
offset
xlat
char getGlyph(int);
descriptor: (I)C
flags: (0x0000)
Code:
stack=4, locals=9, args_size=2
start local 0 // sun.font.CMap$CMapFormat4 this
start local 1 // int charCode
0: .line 538
iconst_0
istore 2 /* index */
start local 2 // int index
1: .line 539
iconst_0
istore 3 /* glyphCode */
start local 3 // char glyphCode
2: .line 541
aload 0 /* this */
iload 1 /* charCode */
iconst_1
invokevirtual sun.font.CMap$CMapFormat4.getControlCodeGlyph:(IZ)I
istore 4 /* controlGlyph */
start local 4 // int controlGlyph
3: .line 542
iload 4 /* controlGlyph */
iflt 5
4: .line 543
iload 4 /* controlGlyph */
i2c
ireturn
5: .line 553
StackMap locals: int int int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.xlat:[C
ifnull 7
6: .line 554
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.xlat:[C
iload 1 /* charCode */
caload
istore 1 /* charCode */
7: .line 575
StackMap locals:
StackMap stack:
iconst_0
istore 5 /* left */
start local 5 // int left
8: aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.startCount:[C
arraylength
istore 6 /* right */
start local 6 // int right
9: .line 576
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.startCount:[C
arraylength
iconst_1
ishr
istore 2 /* index */
10: .line 577
goto 16
11: .line 578
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.endCount:[C
iload 2 /* index */
caload
iload 1 /* charCode */
if_icmpge 14
12: .line 579
iload 2 /* index */
iconst_1
iadd
istore 5 /* left */
13: .line 580
goto 15
14: .line 581
StackMap locals:
StackMap stack:
iload 2 /* index */
istore 6 /* right */
15: .line 583
StackMap locals:
StackMap stack:
iload 5 /* left */
iload 6 /* right */
iadd
iconst_1
ishr
istore 2 /* index */
16: .line 577
StackMap locals:
StackMap stack:
iload 5 /* left */
iload 6 /* right */
if_icmplt 11
17: .line 586
iload 1 /* charCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.startCount:[C
iload 2 /* index */
caload
if_icmplt 28
iload 1 /* charCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.endCount:[C
iload 2 /* index */
caload
if_icmpgt 28
18: .line 587
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.idRangeOffset:[C
iload 2 /* index */
caload
istore 7 /* rangeOffset */
start local 7 // int rangeOffset
19: .line 589
iload 7 /* rangeOffset */
ifne 22
20: .line 590
iload 1 /* charCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.idDelta:[S
iload 2 /* index */
saload
iadd
i2c
istore 3 /* glyphCode */
21: .line 591
goto 28
22: .line 601
StackMap locals: int
StackMap stack:
iload 7 /* rangeOffset */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.segCount:I
isub
iload 2 /* index */
iadd
23: .line 602
iload 1 /* charCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.startCount:[C
iload 2 /* index */
caload
isub
24: .line 601
iadd
istore 8 /* glyphIDIndex */
start local 8 // int glyphIDIndex
25: .line 603
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.glyphIds:[C
iload 8 /* glyphIDIndex */
caload
istore 3 /* glyphCode */
26: .line 604
iload 3 /* glyphCode */
ifeq 28
27: .line 605
iload 3 /* glyphCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat4.idDelta:[S
iload 2 /* index */
saload
iadd
i2c
istore 3 /* glyphCode */
end local 8 // int glyphIDIndex
end local 7 // int rangeOffset
28: .line 612
StackMap locals:
StackMap stack:
iload 3 /* glyphCode */
ireturn
end local 6 // int right
end local 5 // int left
end local 4 // int controlGlyph
end local 3 // char glyphCode
end local 2 // int index
end local 1 // int charCode
end local 0 // sun.font.CMap$CMapFormat4 this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/font/CMap$CMapFormat4;
0 29 1 charCode I
1 29 2 index I
2 29 3 glyphCode C
3 29 4 controlGlyph I
8 29 5 left I
9 29 6 right I
19 28 7 rangeOffset I
25 28 8 glyphIDIndex I
MethodParameters:
Name Flags
charCode
}
SourceFile: "CMap.java"
NestHost: sun.font.CMap
InnerClasses:
CMapFormat4 = sun.font.CMap$CMapFormat4 of sun.font.CMap