class sun.font.CMap$CMapFormat2 extends sun.font.CMap
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.font.CMap$CMapFormat2
super_class: sun.font.CMap
{
char[] subHeaderKey;
descriptor: [C
flags: (0x0000)
char[] firstCodeArray;
descriptor: [C
flags: (0x0000)
char[] entryCountArray;
descriptor: [C
flags: (0x0000)
short[] idDeltaArray;
descriptor: [S
flags: (0x0000)
char[] idRangeOffSetArray;
descriptor: [C
flags: (0x0000)
char[] glyphIndexArray;
descriptor: [C
flags: (0x0000)
void <init>(java.nio.ByteBuffer, int, char[]);
descriptor: (Ljava/nio/ByteBuffer;I[C)V
flags: (0x0000)
Code:
stack=3, locals=10, args_size=4
start local 0 // sun.font.CMap$CMapFormat2 this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int offset
start local 3 // char[] xlat
0: .line 743
aload 0 /* this */
invokespecial sun.font.CMap.<init>:()V
1: .line 727
aload 0 /* this */
sipush 256
newarray 5
putfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
2: .line 745
aload 0 /* this */
aload 3 /* xlat */
putfield sun.font.CMap$CMapFormat2.xlat:[C
3: .line 747
aload 1 /* buffer */
iload 2 /* offset */
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.getChar:(I)C
istore 4 /* tableLen */
start local 4 // int tableLen
4: .line 748
aload 1 /* buffer */
iload 2 /* offset */
bipush 6
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
5: .line 749
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.asCharBuffer:()Ljava/nio/CharBuffer;
astore 5 /* cBuffer */
start local 5 // java.nio.CharBuffer cBuffer
6: .line 750
iconst_0
istore 6 /* maxSubHeader */
start local 6 // char maxSubHeader
7: .line 751
iconst_0
istore 7 /* i */
start local 7 // int i
8: goto 13
9: .line 752
StackMap locals: sun.font.CMap$CMapFormat2 java.nio.ByteBuffer int char[] int java.nio.CharBuffer int int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 7 /* i */
aload 5 /* cBuffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
10: .line 753
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 7 /* i */
caload
iload 6 /* maxSubHeader */
if_icmple 12
11: .line 754
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 7 /* i */
caload
istore 6 /* maxSubHeader */
12: .line 751
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 7 /* i */
sipush 256
if_icmplt 9
end local 7 // int i
14: .line 761
iload 6 /* maxSubHeader */
iconst_3
ishr
iconst_1
iadd
istore 7 /* numSubHeaders */
start local 7 // int numSubHeaders
15: .line 762
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 5
putfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
16: .line 763
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 5
putfield sun.font.CMap$CMapFormat2.entryCountArray:[C
17: .line 764
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 9
putfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
18: .line 765
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 5
putfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
19: .line 766
iconst_0
istore 8 /* i */
start local 8 // int i
20: goto 26
21: .line 767
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
iload 8 /* i */
aload 5 /* cBuffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
22: .line 768
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.entryCountArray:[C
iload 8 /* i */
aload 5 /* cBuffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
23: .line 769
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
iload 8 /* i */
aload 5 /* cBuffer */
invokevirtual java.nio.CharBuffer.get:()C
i2s
sastore
24: .line 770
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
iload 8 /* i */
aload 5 /* cBuffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
25: .line 766
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
26: iload 8 /* i */
iload 7 /* numSubHeaders */
if_icmplt 21
end local 8 // int i
27: .line 777
iload 4 /* tableLen */
sipush 518
isub
iload 7 /* numSubHeaders */
bipush 8
imul
isub
iconst_2
idiv
istore 8 /* glyphIndexArrSize */
start local 8 // int glyphIndexArrSize
28: .line 778
aload 0 /* this */
iload 8 /* glyphIndexArrSize */
newarray 5
putfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
29: .line 779
iconst_0
istore 9 /* i */
start local 9 // int i
30: goto 33
31: .line 780
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
iload 9 /* i */
aload 5 /* cBuffer */
invokevirtual java.nio.CharBuffer.get:()C
castore
32: .line 779
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
33: iload 9 /* i */
iload 8 /* glyphIndexArrSize */
if_icmplt 31
end local 9 // int i
34: .line 782
return
end local 8 // int glyphIndexArrSize
end local 7 // int numSubHeaders
end local 6 // char maxSubHeader
end local 5 // java.nio.CharBuffer cBuffer
end local 4 // int tableLen
end local 3 // char[] xlat
end local 2 // int offset
end local 1 // java.nio.ByteBuffer buffer
end local 0 // sun.font.CMap$CMapFormat2 this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/font/CMap$CMapFormat2;
0 35 1 buffer Ljava/nio/ByteBuffer;
0 35 2 offset I
0 35 3 xlat [C
4 35 4 tableLen I
6 35 5 cBuffer Ljava/nio/CharBuffer;
7 35 6 maxSubHeader C
8 14 7 i I
15 35 7 numSubHeaders I
20 27 8 i I
28 35 8 glyphIndexArrSize I
30 34 9 i I
MethodParameters:
Name Flags
buffer
offset
xlat
char getGlyph(int);
descriptor: (I)C
flags: (0x0000)
Code:
stack=3, locals=12, args_size=2
start local 0 // sun.font.CMap$CMapFormat2 this
start local 1 // int charCode
0: .line 785
iload 1 /* charCode */
istore 2 /* origCharCode */
start local 2 // int origCharCode
1: .line 786
aload 0 /* this */
iload 1 /* charCode */
iconst_1
invokevirtual sun.font.CMap$CMapFormat2.getControlCodeGlyph:(IZ)I
istore 3 /* controlGlyph */
start local 3 // int controlGlyph
2: .line 787
iload 3 /* controlGlyph */
iflt 4
3: .line 788
iload 3 /* controlGlyph */
i2c
ireturn
4: .line 791
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.xlat:[C
ifnull 6
5: .line 792
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.xlat:[C
iload 1 /* charCode */
caload
istore 1 /* charCode */
6: .line 795
StackMap locals:
StackMap stack:
iload 1 /* charCode */
bipush 8
ishr
i2c
istore 4 /* highByte */
start local 4 // char highByte
7: .line 796
iload 1 /* charCode */
sipush 255
iand
i2c
istore 5 /* lowByte */
start local 5 // char lowByte
8: .line 797
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 4 /* highByte */
caload
iconst_3
ishr
istore 6 /* key */
start local 6 // int key
9: .line 800
iload 6 /* key */
ifeq 12
10: .line 801
iload 5 /* lowByte */
istore 7 /* mapMe */
start local 7 // char mapMe
11: .line 802
goto 15
end local 7 // char mapMe
12: .line 803
StackMap locals: int int int
StackMap stack:
iload 4 /* highByte */
istore 7 /* mapMe */
start local 7 // char mapMe
13: .line 804
iload 7 /* mapMe */
ifne 15
14: .line 805
iload 5 /* lowByte */
istore 7 /* mapMe */
15: .line 811
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
iload 6 /* key */
caload
istore 8 /* firstCode */
start local 8 // char firstCode
16: .line 812
iload 7 /* mapMe */
iload 8 /* firstCode */
if_icmpge 18
17: .line 813
iconst_0
ireturn
18: .line 815
StackMap locals: int
StackMap stack:
iload 7 /* mapMe */
iload 8 /* firstCode */
isub
i2c
istore 7 /* mapMe */
19: .line 818
iload 7 /* mapMe */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.entryCountArray:[C
iload 6 /* key */
caload
if_icmpge 27
20: .line 832
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
arraylength
iload 6 /* key */
isub
bipush 8
imul
bipush 6
isub
istore 9 /* glyphArrayOffset */
start local 9 // int glyphArrayOffset
21: .line 834
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
iload 6 /* key */
caload
iload 9 /* glyphArrayOffset */
isub
iconst_2
idiv
22: .line 833
istore 10 /* glyphSubArrayStart */
start local 10 // int glyphSubArrayStart
23: .line 835
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
iload 10 /* glyphSubArrayStart */
iload 7 /* mapMe */
iadd
caload
istore 11 /* glyphCode */
start local 11 // char glyphCode
24: .line 836
iload 11 /* glyphCode */
ifeq 27
25: .line 837
iload 11 /* glyphCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
iload 6 /* key */
saload
iadd
i2c
istore 11 /* glyphCode */
26: .line 838
iload 11 /* glyphCode */
ireturn
end local 11 // char glyphCode
end local 10 // int glyphSubArrayStart
end local 9 // int glyphArrayOffset
27: .line 841
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 2 /* origCharCode */
invokevirtual sun.font.CMap$CMapFormat2.getFormatCharGlyph:(I)C
ireturn
end local 8 // char firstCode
end local 7 // char mapMe
end local 6 // int key
end local 5 // char lowByte
end local 4 // char highByte
end local 3 // int controlGlyph
end local 2 // int origCharCode
end local 1 // int charCode
end local 0 // sun.font.CMap$CMapFormat2 this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/font/CMap$CMapFormat2;
0 28 1 charCode I
1 28 2 origCharCode I
2 28 3 controlGlyph I
7 28 4 highByte C
8 28 5 lowByte C
9 28 6 key I
11 12 7 mapMe C
13 28 7 mapMe C
16 28 8 firstCode C
21 27 9 glyphArrayOffset I
23 27 10 glyphSubArrayStart I
24 27 11 glyphCode C
MethodParameters:
Name Flags
charCode
}
SourceFile: "CMap.java"
NestHost: sun.font.CMap
InnerClasses:
CMapFormat2 = sun.font.CMap$CMapFormat2 of sun.font.CMap