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 734
aload 0 /* this */
invokespecial sun.font.CMap.<init>:()V
1: .line 718
aload 0 /* this */
sipush 256
newarray 5
putfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
2: .line 736
aload 0 /* this */
aload 3 /* xlat */
putfield sun.font.CMap$CMapFormat2.xlat:[C
3: .line 738
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 739
aload 1 /* buffer */
iload 2 /* offset */
bipush 6
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
5: .line 740
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.asCharBuffer:()Ljava/nio/CharBuffer;
astore 5 /* cBuffer */
start local 5 // java.nio.CharBuffer cBuffer
6: .line 741
iconst_0
istore 6 /* maxSubHeader */
start local 6 // char maxSubHeader
7: .line 742
iconst_0
istore 7 /* i */
start local 7 // int i
8: goto 13
9: .line 743
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 744
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 7 /* i */
caload
iload 6 /* maxSubHeader */
if_icmple 12
11: .line 745
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 7 /* i */
caload
istore 6 /* maxSubHeader */
12: .line 742
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 752
iload 6 /* maxSubHeader */
iconst_3
ishr
iconst_1
iadd
istore 7 /* numSubHeaders */
start local 7 // int numSubHeaders
15: .line 753
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 5
putfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
16: .line 754
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 5
putfield sun.font.CMap$CMapFormat2.entryCountArray:[C
17: .line 755
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 9
putfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
18: .line 756
aload 0 /* this */
iload 7 /* numSubHeaders */
newarray 5
putfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
19: .line 757
iconst_0
istore 8 /* i */
start local 8 // int i
20: goto 26
21: .line 758
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 759
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 760
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 761
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 757
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 768
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 769
aload 0 /* this */
iload 8 /* glyphIndexArrSize */
newarray 5
putfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
29: .line 770
iconst_0
istore 9 /* i */
start local 9 // int i
30: goto 33
31: .line 771
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 770
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 773
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=11, args_size=2
start local 0 // sun.font.CMap$CMapFormat2 this
start local 1 // int charCode
0: .line 776
aload 0 /* this */
iload 1 /* charCode */
iconst_1
invokevirtual sun.font.CMap$CMapFormat2.getControlCodeGlyph:(IZ)I
istore 2 /* controlGlyph */
start local 2 // int controlGlyph
1: .line 777
iload 2 /* controlGlyph */
iflt 3
2: .line 778
iload 2 /* controlGlyph */
i2c
ireturn
3: .line 781
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.xlat:[C
ifnull 5
4: .line 782
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.xlat:[C
iload 1 /* charCode */
caload
istore 1 /* charCode */
5: .line 785
StackMap locals:
StackMap stack:
iload 1 /* charCode */
bipush 8
ishr
i2c
istore 3 /* highByte */
start local 3 // char highByte
6: .line 786
iload 1 /* charCode */
sipush 255
iand
i2c
istore 4 /* lowByte */
start local 4 // char lowByte
7: .line 787
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.subHeaderKey:[C
iload 3 /* highByte */
caload
iconst_3
ishr
istore 5 /* key */
start local 5 // int key
8: .line 790
iload 5 /* key */
ifeq 11
9: .line 791
iload 4 /* lowByte */
istore 6 /* mapMe */
start local 6 // char mapMe
10: .line 792
goto 14
end local 6 // char mapMe
11: .line 793
StackMap locals: int int int
StackMap stack:
iload 3 /* highByte */
istore 6 /* mapMe */
start local 6 // char mapMe
12: .line 794
iload 6 /* mapMe */
ifne 14
13: .line 795
iload 4 /* lowByte */
istore 6 /* mapMe */
14: .line 801
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.firstCodeArray:[C
iload 5 /* key */
caload
istore 7 /* firstCode */
start local 7 // char firstCode
15: .line 802
iload 6 /* mapMe */
iload 7 /* firstCode */
if_icmpge 17
16: .line 803
iconst_0
ireturn
17: .line 805
StackMap locals: int
StackMap stack:
iload 6 /* mapMe */
iload 7 /* firstCode */
isub
i2c
istore 6 /* mapMe */
18: .line 808
iload 6 /* mapMe */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.entryCountArray:[C
iload 5 /* key */
caload
if_icmpge 26
19: .line 822
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
arraylength
iload 5 /* key */
isub
bipush 8
imul
bipush 6
isub
istore 8 /* glyphArrayOffset */
start local 8 // int glyphArrayOffset
20: .line 824
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idRangeOffSetArray:[C
iload 5 /* key */
caload
iload 8 /* glyphArrayOffset */
isub
iconst_2
idiv
21: .line 823
istore 9 /* glyphSubArrayStart */
start local 9 // int glyphSubArrayStart
22: .line 825
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.glyphIndexArray:[C
iload 9 /* glyphSubArrayStart */
iload 6 /* mapMe */
iadd
caload
istore 10 /* glyphCode */
start local 10 // char glyphCode
23: .line 826
iload 10 /* glyphCode */
ifeq 26
24: .line 827
iload 10 /* glyphCode */
aload 0 /* this */
getfield sun.font.CMap$CMapFormat2.idDeltaArray:[S
iload 5 /* key */
saload
iadd
i2c
istore 10 /* glyphCode */
25: .line 828
iload 10 /* glyphCode */
ireturn
end local 10 // char glyphCode
end local 9 // int glyphSubArrayStart
end local 8 // int glyphArrayOffset
26: .line 831
StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 7 // char firstCode
end local 6 // char mapMe
end local 5 // int key
end local 4 // char lowByte
end local 3 // char highByte
end local 2 // int controlGlyph
end local 1 // int charCode
end local 0 // sun.font.CMap$CMapFormat2 this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/font/CMap$CMapFormat2;
0 27 1 charCode I
1 27 2 controlGlyph I
6 27 3 highByte C
7 27 4 lowByte C
8 27 5 key I
10 11 6 mapMe C
12 27 6 mapMe C
15 27 7 firstCode C
20 26 8 glyphArrayOffset I
22 26 9 glyphSubArrayStart I
23 26 10 glyphCode C
MethodParameters:
Name Flags
charCode
}
SourceFile: "CMap.java"
NestHost: sun.font.CMap
InnerClasses:
CMapFormat2 = sun.font.CMap$CMapFormat2 of sun.font.CMap