abstract class sun.font.CMap
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.font.CMap
super_class: java.lang.Object
{
static final short ShiftJISEncoding;
descriptor: S
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final short GBKEncoding;
descriptor: S
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final short Big5Encoding;
descriptor: S
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final short WansungEncoding;
descriptor: S
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5
static final short JohabEncoding;
descriptor: S
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final short MSUnicodeSurrogateEncoding;
descriptor: S
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 10
static final char noSuchChar;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65533
static final int SHORTMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65535
static final int INTMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
static final char[][] converterMaps;
descriptor: [[C
flags: (0x0018) ACC_STATIC, ACC_FINAL
char[] xlat;
descriptor: [C
flags: (0x0000)
sun.font.CMap$UVS uvs;
descriptor: Lsun/font/CMap$UVS;
flags: (0x0000)
public static final sun.font.CMap$NullCMapClass theNullCmap;
descriptor: Lsun/font/CMap$NullCMapClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 135
bipush 7
anewarray char[]
putstatic sun.font.CMap.converterMaps:[[C
1: .line 1089
new sun.font.CMap$NullCMapClass
dup
invokespecial sun.font.CMap$NullCMapClass.<init>:()V
putstatic sun.font.CMap.theNullCmap:Lsun/font/CMap$NullCMapClass;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.font.CMap this
0: .line 52
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 143
aload 0 /* this */
aconst_null
putfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
2: .line 52
return
end local 0 // sun.font.CMap this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/CMap;
static sun.font.CMap initialize(sun.font.TrueTypeFont);
descriptor: (Lsun/font/TrueTypeFont;)Lsun/font/CMap;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=18, args_size=1
start local 0 // sun.font.TrueTypeFont font
0: .line 147
aconst_null
astore 1 /* cmap */
start local 1 // sun.font.CMap cmap
1: .line 149
iconst_m1
istore 4 /* encodingID */
start local 4 // int encodingID
2: .line 151
iconst_0
istore 5 /* three0 */
start local 5 // int three0
3: iconst_0
istore 6 /* three1 */
start local 6 // int three1
4: iconst_0
istore 7 /* three2 */
start local 7 // int three2
5: iconst_0
istore 8 /* three3 */
start local 8 // int three3
6: iconst_0
istore 9 /* three4 */
start local 9 // int three4
7: iconst_0
istore 10 /* three5 */
start local 10 // int three5
8: .line 152
iconst_0
istore 11 /* three6 */
start local 11 // int three6
9: iconst_0
istore 12 /* three10 */
start local 12 // int three10
10: .line 153
iconst_0
istore 13 /* zero5 */
start local 13 // int zero5
11: .line 154
iconst_0
istore 14 /* threeStar */
start local 14 // boolean threeStar
12: .line 156
aload 0 /* font */
ldc 1668112752
invokevirtual sun.font.TrueTypeFont.getTableBuffer:(I)Ljava/nio/ByteBuffer;
astore 15 /* cmapBuffer */
start local 15 // java.nio.ByteBuffer cmapBuffer
13: .line 157
aload 0 /* font */
ldc 1668112752
invokevirtual sun.font.TrueTypeFont.getTableSize:(I)I
pop
14: .line 158
aload 15 /* cmapBuffer */
iconst_2
invokevirtual java.nio.ByteBuffer.getShort:(I)S
istore 16 /* numberSubTables */
start local 16 // short numberSubTables
15: .line 161
iconst_0
istore 17 /* i */
start local 17 // int i
16: goto 39
17: .line 162
StackMap locals: sun.font.TrueTypeFont sun.font.CMap top top int int int int int int int int int int int java.nio.ByteBuffer int int
StackMap stack:
aload 15 /* cmapBuffer */
iload 17 /* i */
bipush 8
imul
iconst_4
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
18: .line 163
aload 15 /* cmapBuffer */
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 3 /* platformID */
start local 3 // int platformID
19: .line 164
iload 3 /* platformID */
iconst_3
if_icmpne 33
20: .line 165
iconst_1
istore 14 /* threeStar */
21: .line 166
aload 15 /* cmapBuffer */
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 4 /* encodingID */
22: .line 167
aload 15 /* cmapBuffer */
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 2 /* offset */
start local 2 // int offset
23: .line 168
iload 4 /* encodingID */
tableswitch { // 0 - 10
0: 24
1: 25
2: 26
3: 27
4: 28
5: 29
6: 30
7: 32
8: 32
9: 32
10: 31
default: 32
}
24: .line 169
StackMap locals: sun.font.TrueTypeFont sun.font.CMap int int int int int int int int int int int int int java.nio.ByteBuffer int int
StackMap stack:
iload 2 /* offset */
istore 5 /* three0 */
goto 38
25: .line 170
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 6 /* three1 */
goto 38
26: .line 171
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 7 /* three2 */
goto 38
27: .line 172
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 8 /* three3 */
goto 38
28: .line 173
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 9 /* three4 */
goto 38
29: .line 174
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 10 /* three5 */
goto 38
30: .line 175
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 11 /* three6 */
goto 38
31: .line 176
StackMap locals:
StackMap stack:
iload 2 /* offset */
istore 12 /* three10 */
32: .line 178
StackMap locals:
StackMap stack:
goto 38
end local 2 // int offset
StackMap locals: sun.font.TrueTypeFont sun.font.CMap top int int int int int int int int int int int int java.nio.ByteBuffer int int
StackMap stack:
33: iload 3 /* platformID */
ifne 38
34: .line 179
aload 15 /* cmapBuffer */
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 4 /* encodingID */
35: .line 180
aload 15 /* cmapBuffer */
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 2 /* offset */
start local 2 // int offset
36: .line 181
iload 4 /* encodingID */
iconst_5
if_icmpne 38
37: .line 182
iload 2 /* offset */
istore 13 /* zero5 */
end local 2 // int offset
38: .line 161
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
end local 3 // int platformID
StackMap locals: sun.font.TrueTypeFont sun.font.CMap top top int int int int int int int int int int int java.nio.ByteBuffer int int
StackMap stack:
39: iload 17 /* i */
iload 16 /* numberSubTables */
if_icmplt 17
end local 17 // int i
40: .line 188
iload 14 /* threeStar */
ifeq 92
41: .line 189
iload 12 /* three10 */
ifeq 44
42: .line 190
aload 15 /* cmapBuffer */
iload 12 /* three10 */
aconst_null
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
43: .line 191
goto 93
44: .line 192
StackMap locals:
StackMap stack:
iload 5 /* three0 */
ifeq 47
45: .line 222
aload 15 /* cmapBuffer */
iload 5 /* three0 */
aconst_null
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
46: .line 224
goto 93
47: .line 225
StackMap locals:
StackMap stack:
iload 6 /* three1 */
ifeq 50
48: .line 226
aload 15 /* cmapBuffer */
iload 6 /* three1 */
aconst_null
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
49: .line 227
goto 93
50: .line 228
StackMap locals:
StackMap stack:
iload 7 /* three2 */
ifeq 55
51: .line 229
aload 15 /* cmapBuffer */
iload 7 /* three2 */
52: .line 230
iconst_2
invokestatic sun.font.CMap.getConverterMap:(S)[C
53: .line 229
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
54: .line 231
goto 93
55: .line 232
StackMap locals:
StackMap stack:
iload 8 /* three3 */
ifeq 60
56: .line 233
aload 15 /* cmapBuffer */
iload 8 /* three3 */
57: .line 234
iconst_3
invokestatic sun.font.CMap.getConverterMap:(S)[C
58: .line 233
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
59: .line 235
goto 93
60: .line 236
StackMap locals:
StackMap stack:
iload 9 /* three4 */
ifeq 82
61: .line 243
getstatic sun.font.FontUtilities.isSolaris:Z
ifeq 78
aload 0 /* font */
getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
ifnull 78
62: .line 244
aload 0 /* font */
getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
63: .line 245
ldc "/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType"
64: .line 244
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
65: .line 245
ifne 74
66: .line 246
aload 0 /* font */
getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
67: .line 247
ldc "/usr/openwin/lib/locale/zh_CN/X11/fonts/TrueType"
68: .line 246
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
69: .line 247
ifne 74
70: .line 248
aload 0 /* font */
getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
71: .line 249
ldc "/usr/openwin/lib/locale/zh/X11/fonts/TrueType"
72: .line 248
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
73: .line 249
ifeq 78
74: .line 250
StackMap locals:
StackMap stack:
aload 15 /* cmapBuffer */
iload 9 /* three4 */
75: .line 251
iconst_3
invokestatic sun.font.CMap.getConverterMap:(S)[C
76: .line 250
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
77: .line 252
goto 93
78: .line 254
StackMap locals:
StackMap stack:
aload 15 /* cmapBuffer */
iload 9 /* three4 */
79: .line 255
iconst_4
invokestatic sun.font.CMap.getConverterMap:(S)[C
80: .line 254
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
81: .line 257
goto 93
82: .line 258
StackMap locals:
StackMap stack:
iload 10 /* three5 */
ifeq 87
83: .line 259
aload 15 /* cmapBuffer */
iload 10 /* three5 */
84: .line 260
iconst_5
invokestatic sun.font.CMap.getConverterMap:(S)[C
85: .line 259
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
86: .line 261
goto 93
87: .line 262
StackMap locals:
StackMap stack:
iload 11 /* three6 */
ifeq 93
88: .line 263
aload 15 /* cmapBuffer */
iload 11 /* three6 */
89: .line 264
bipush 6
invokestatic sun.font.CMap.getConverterMap:(S)[C
90: .line 263
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
91: .line 266
goto 93
92: .line 271
StackMap locals:
StackMap stack:
aload 15 /* cmapBuffer */
aload 15 /* cmapBuffer */
bipush 8
invokevirtual java.nio.ByteBuffer.getInt:(I)I
aconst_null
invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
astore 1 /* cmap */
93: .line 274
StackMap locals:
StackMap stack:
aload 1 /* cmap */
ifnull 95
iload 13 /* zero5 */
ifeq 95
94: .line 275
aload 1 /* cmap */
aload 15 /* cmapBuffer */
iload 13 /* zero5 */
invokevirtual sun.font.CMap.createUVS:(Ljava/nio/ByteBuffer;I)V
95: .line 277
StackMap locals:
StackMap stack:
aload 1 /* cmap */
areturn
end local 16 // short numberSubTables
end local 15 // java.nio.ByteBuffer cmapBuffer
end local 14 // boolean threeStar
end local 13 // int zero5
end local 12 // int three10
end local 11 // int three6
end local 10 // int three5
end local 9 // int three4
end local 8 // int three3
end local 7 // int three2
end local 6 // int three1
end local 5 // int three0
end local 4 // int encodingID
end local 1 // sun.font.CMap cmap
end local 0 // sun.font.TrueTypeFont font
LocalVariableTable:
Start End Slot Name Signature
0 96 0 font Lsun/font/TrueTypeFont;
1 96 1 cmap Lsun/font/CMap;
23 33 2 offset I
36 38 2 offset I
19 39 3 platformID I
2 96 4 encodingID I
3 96 5 three0 I
4 96 6 three1 I
5 96 7 three2 I
6 96 8 three3 I
7 96 9 three4 I
8 96 10 three5 I
9 96 11 three6 I
10 96 12 three10 I
11 96 13 zero5 I
12 96 14 threeStar Z
13 96 15 cmapBuffer Ljava/nio/ByteBuffer;
15 96 16 numberSubTables S
16 40 17 i I
MethodParameters:
Name Flags
font
static char[] getConverter(short);
descriptor: (S)[C
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=11, args_size=1
start local 0 // short encodingID
0: .line 284
ldc 32768
istore 1 /* dBegin */
start local 1 // int dBegin
1: .line 285
ldc 65535
istore 2 /* dEnd */
start local 2 // int dEnd
2: .line 288
iload 0 /* encodingID */
tableswitch { // 2 - 6
2: 3
3: 7
4: 11
5: 15
6: 19
default: 23
}
3: .line 290
StackMap locals: int int
StackMap stack:
ldc 33088
istore 1 /* dBegin */
4: .line 291
ldc 64764
istore 2 /* dEnd */
5: .line 292
ldc "SJIS"
astore 3 /* encoding */
start local 3 // java.lang.String encoding
6: .line 293
goto 24
end local 3 // java.lang.String encoding
7: .line 295
StackMap locals:
StackMap stack:
ldc 33088
istore 1 /* dBegin */
8: .line 296
ldc 65184
istore 2 /* dEnd */
9: .line 297
ldc "GBK"
astore 3 /* encoding */
start local 3 // java.lang.String encoding
10: .line 298
goto 24
end local 3 // java.lang.String encoding
11: .line 300
StackMap locals:
StackMap stack:
ldc 41280
istore 1 /* dBegin */
12: .line 301
ldc 65278
istore 2 /* dEnd */
13: .line 302
ldc "Big5"
astore 3 /* encoding */
start local 3 // java.lang.String encoding
14: .line 303
goto 24
end local 3 // java.lang.String encoding
15: .line 305
StackMap locals:
StackMap stack:
ldc 41377
istore 1 /* dBegin */
16: .line 306
ldc 65246
istore 2 /* dEnd */
17: .line 307
ldc "EUC_KR"
astore 3 /* encoding */
start local 3 // java.lang.String encoding
18: .line 308
goto 24
end local 3 // java.lang.String encoding
19: .line 310
StackMap locals:
StackMap stack:
ldc 33089
istore 1 /* dBegin */
20: .line 311
ldc 65022
istore 2 /* dEnd */
21: .line 312
ldc "Johab"
astore 3 /* encoding */
start local 3 // java.lang.String encoding
22: .line 313
goto 24
end local 3 // java.lang.String encoding
23: .line 315
StackMap locals:
StackMap stack:
aconst_null
areturn
start local 3 // java.lang.String encoding
24: .line 319
StackMap locals: java.lang.String
StackMap stack:
ldc 65536
newarray 5
astore 4 /* convertedChars */
start local 4 // char[] convertedChars
25: .line 320
iconst_0
istore 5 /* i */
start local 5 // int i
26: goto 29
27: .line 321
StackMap locals: char[] int
StackMap stack:
aload 4 /* convertedChars */
iload 5 /* i */
ldc 65533
castore
28: .line 320
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
29: iload 5 /* i */
ldc 65536
if_icmplt 27
end local 5 // int i
30: .line 324
iload 2 /* dEnd */
iload 1 /* dBegin */
isub
iconst_1
iadd
iconst_2
imul
newarray 8
astore 5 /* inputBytes */
start local 5 // byte[] inputBytes
31: .line 325
iload 2 /* dEnd */
iload 1 /* dBegin */
isub
iconst_1
iadd
newarray 5
astore 6 /* outputChars */
start local 6 // char[] outputChars
32: .line 327
iconst_0
istore 7 /* j */
start local 7 // int j
33: .line 329
iload 0 /* encodingID */
iconst_2
if_icmpne 46
34: .line 330
iload 1 /* dBegin */
istore 9 /* i */
start local 9 // int i
35: goto 44
36: .line 331
StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
StackMap stack:
iload 9 /* i */
bipush 8
ishr
sipush 255
iand
istore 8 /* firstByte */
start local 8 // int firstByte
37: .line 332
iload 8 /* firstByte */
sipush 161
if_icmplt 41
iload 8 /* firstByte */
sipush 223
if_icmpgt 41
38: .line 334
aload 5 /* inputBytes */
iload 7 /* j */
iinc 7 /* j */ 1
iconst_m1
bastore
39: .line 335
aload 5 /* inputBytes */
iload 7 /* j */
iinc 7 /* j */ 1
iconst_m1
bastore
40: .line 336
goto 43
41: .line 337
StackMap locals: int int int java.lang.String char[] byte[] char[] int int int
StackMap stack:
aload 5 /* inputBytes */
iload 7 /* j */
iinc 7 /* j */ 1
iload 8 /* firstByte */
i2b
bastore
42: .line 338
aload 5 /* inputBytes */
iload 7 /* j */
iinc 7 /* j */ 1
iload 9 /* i */
sipush 255
iand
i2b
bastore
43: .line 330
StackMap locals:
StackMap stack:
iinc 9 /* i */ 1
end local 8 // int firstByte
StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
StackMap stack:
44: iload 9 /* i */
iload 2 /* dEnd */
if_icmple 36
end local 9 // int i
45: .line 341
goto 52
46: .line 342
StackMap locals: int int int java.lang.String char[] byte[] char[] int
StackMap stack:
iload 1 /* dBegin */
istore 9 /* i */
start local 9 // int i
47: goto 51
48: .line 343
StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
StackMap stack:
aload 5 /* inputBytes */
iload 7 /* j */
iinc 7 /* j */ 1
iload 9 /* i */
bipush 8
ishr
sipush 255
iand
i2b
bastore
49: .line 344
aload 5 /* inputBytes */
iload 7 /* j */
iinc 7 /* j */ 1
iload 9 /* i */
sipush 255
iand
i2b
bastore
50: .line 342
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
51: iload 9 /* i */
iload 2 /* dEnd */
if_icmple 48
end local 9 // int i
52: .line 348
StackMap locals: int int int java.lang.String char[] byte[] char[] int
StackMap stack:
aload 3 /* encoding */
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
53: .line 349
getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
54: .line 350
getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
55: .line 351
ldc "\u0000"
invokevirtual java.nio.charset.CharsetDecoder.replaceWith:(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;
56: .line 352
aload 5 /* inputBytes */
iconst_0
aload 5 /* inputBytes */
arraylength
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
57: .line 353
aload 6 /* outputChars */
iconst_0
aload 6 /* outputChars */
arraylength
invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
58: .line 354
iconst_1
59: .line 352
invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
pop
60: .line 357
bipush 32
istore 9 /* i */
start local 9 // int i
61: goto 64
62: .line 358
StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
StackMap stack:
aload 4 /* convertedChars */
iload 9 /* i */
iload 9 /* i */
i2c
castore
63: .line 357
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
64: iload 9 /* i */
bipush 126
if_icmple 62
end local 9 // int i
65: .line 362
iload 0 /* encodingID */
iconst_2
if_icmpne 71
66: .line 363
sipush 161
istore 9 /* i */
start local 9 // int i
67: goto 70
68: .line 364
StackMap locals:
StackMap stack:
aload 4 /* convertedChars */
iload 9 /* i */
iload 9 /* i */
sipush 161
isub
ldc 65377
iadd
i2c
castore
69: .line 363
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 9 /* i */
sipush 223
if_icmple 68
end local 9 // int i
71: .line 376
StackMap locals: int int int java.lang.String char[] byte[] char[] int
StackMap stack:
aload 6 /* outputChars */
iconst_0
aload 4 /* convertedChars */
iload 1 /* dBegin */
72: .line 377
aload 6 /* outputChars */
arraylength
73: .line 376
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
74: .line 383
ldc 65536
newarray 5
astore 9 /* invertedChars */
start local 9 // char[] invertedChars
75: .line 384
iconst_0
istore 10 /* i */
start local 10 // int i
76: goto 80
77: .line 385
StackMap locals: int int int java.lang.String char[] byte[] char[] int top char[] int
StackMap stack:
aload 4 /* convertedChars */
iload 10 /* i */
caload
ldc 65533
if_icmpeq 79
78: .line 386
aload 9 /* invertedChars */
aload 4 /* convertedChars */
iload 10 /* i */
caload
iload 10 /* i */
i2c
castore
79: .line 384
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
80: iload 10 /* i */
ldc 65536
if_icmplt 77
end local 10 // int i
81: .line 389
aload 9 /* invertedChars */
82: areturn
end local 9 // char[] invertedChars
end local 7 // int j
end local 6 // char[] outputChars
end local 5 // byte[] inputBytes
end local 4 // char[] convertedChars
83: .line 391
StackMap locals: int int int java.lang.String
StackMap stack: java.lang.Exception
astore 4 /* e */
start local 4 // java.lang.Exception e
84: .line 392
aload 4 /* e */
invokevirtual java.lang.Exception.printStackTrace:()V
end local 4 // java.lang.Exception e
85: .line 394
aconst_null
areturn
end local 3 // java.lang.String encoding
end local 2 // int dEnd
end local 1 // int dBegin
end local 0 // short encodingID
LocalVariableTable:
Start End Slot Name Signature
0 86 0 encodingID S
1 86 1 dBegin I
2 86 2 dEnd I
6 7 3 encoding Ljava/lang/String;
10 11 3 encoding Ljava/lang/String;
14 15 3 encoding Ljava/lang/String;
18 19 3 encoding Ljava/lang/String;
22 23 3 encoding Ljava/lang/String;
24 86 3 encoding Ljava/lang/String;
25 83 4 convertedChars [C
26 30 5 i I
31 83 5 inputBytes [B
32 83 6 outputChars [C
33 83 7 j I
37 44 8 firstByte I
35 45 9 i I
47 52 9 i I
61 65 9 i I
67 71 9 i I
75 83 9 invertedChars [C
76 81 10 i I
84 85 4 e Ljava/lang/Exception;
Exception table:
from to target type
24 82 83 Class java.lang.Exception
MethodParameters:
Name Flags
encodingID
static char[] getConverterMap(short);
descriptor: (S)[C
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // short encodingID
0: .line 403
getstatic sun.font.CMap.converterMaps:[[C
iload 0 /* encodingID */
aaload
ifnonnull 2
1: .line 404
getstatic sun.font.CMap.converterMaps:[[C
iload 0 /* encodingID */
iload 0 /* encodingID */
invokestatic sun.font.CMap.getConverter:(S)[C
aastore
2: .line 406
StackMap locals:
StackMap stack:
getstatic sun.font.CMap.converterMaps:[[C
iload 0 /* encodingID */
aaload
areturn
end local 0 // short encodingID
LocalVariableTable:
Start End Slot Name Signature
0 3 0 encodingID S
MethodParameters:
Name Flags
encodingID
static sun.font.CMap createCMap(java.nio.ByteBuffer, int, char[]);
descriptor: (Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 // java.nio.ByteBuffer buffer
start local 1 // int offset
start local 2 // char[] xlat
0: .line 414
aload 0 /* buffer */
iload 1 /* offset */
invokevirtual java.nio.ByteBuffer.getChar:(I)C
istore 3 /* subtableFormat */
start local 3 // int subtableFormat
1: .line 416
iload 3 /* subtableFormat */
bipush 8
if_icmpge 4
2: .line 417
aload 0 /* buffer */
iload 1 /* offset */
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.getChar:(I)C
i2l
lstore 4 /* subtableLength */
start local 4 // long subtableLength
3: .line 418
goto 5
end local 4 // long subtableLength
4: .line 419
StackMap locals: int
StackMap stack:
aload 0 /* buffer */
iload 1 /* offset */
iconst_4
iadd
invokevirtual java.nio.ByteBuffer.getInt:(I)I
ldc 2147483647
iand
i2l
lstore 4 /* subtableLength */
start local 4 // long subtableLength
5: .line 421
StackMap locals: long
StackMap stack:
iload 1 /* offset */
i2l
lload 4 /* subtableLength */
ladd
aload 0 /* buffer */
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
lcmp
ifle 8
6: .line 422
invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 8
7: .line 423
invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
ldc "Cmap subtable overflows buffer."
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
8: .line 426
StackMap locals:
StackMap stack:
iload 3 /* subtableFormat */
tableswitch { // 0 - 12
0: 9
1: 16
2: 10
3: 16
4: 11
5: 16
6: 12
7: 16
8: 13
9: 16
10: 14
11: 16
12: 15
default: 16
}
9: .line 427
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat0
dup
aload 0 /* buffer */
iload 1 /* offset */
invokespecial sun.font.CMap$CMapFormat0.<init>:(Ljava/nio/ByteBuffer;I)V
areturn
10: .line 428
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat2
dup
aload 0 /* buffer */
iload 1 /* offset */
aload 2 /* xlat */
invokespecial sun.font.CMap$CMapFormat2.<init>:(Ljava/nio/ByteBuffer;I[C)V
areturn
11: .line 429
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat4
dup
aload 0 /* buffer */
iload 1 /* offset */
aload 2 /* xlat */
invokespecial sun.font.CMap$CMapFormat4.<init>:(Ljava/nio/ByteBuffer;I[C)V
areturn
12: .line 430
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat6
dup
aload 0 /* buffer */
iload 1 /* offset */
aload 2 /* xlat */
invokespecial sun.font.CMap$CMapFormat6.<init>:(Ljava/nio/ByteBuffer;I[C)V
areturn
13: .line 431
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat8
dup
aload 0 /* buffer */
iload 1 /* offset */
aload 2 /* xlat */
invokespecial sun.font.CMap$CMapFormat8.<init>:(Ljava/nio/ByteBuffer;I[C)V
areturn
14: .line 432
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat10
dup
aload 0 /* buffer */
iload 1 /* offset */
aload 2 /* xlat */
invokespecial sun.font.CMap$CMapFormat10.<init>:(Ljava/nio/ByteBuffer;I[C)V
areturn
15: .line 433
StackMap locals:
StackMap stack:
new sun.font.CMap$CMapFormat12
dup
aload 0 /* buffer */
iload 1 /* offset */
aload 2 /* xlat */
invokespecial sun.font.CMap$CMapFormat12.<init>:(Ljava/nio/ByteBuffer;I[C)V
areturn
16: .line 434
StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Cmap format unimplemented: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: .line 435
aload 0 /* buffer */
iload 1 /* offset */
invokevirtual java.nio.ByteBuffer.getChar:(I)C
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: .line 434
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 4 // long subtableLength
end local 3 // int subtableFormat
end local 2 // char[] xlat
end local 1 // int offset
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 19 0 buffer Ljava/nio/ByteBuffer;
0 19 1 offset I
0 19 2 xlat [C
1 19 3 subtableFormat I
3 4 4 subtableLength J
5 19 4 subtableLength J
MethodParameters:
Name Flags
buffer
offset
xlat
private void createUVS(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 // sun.font.CMap this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int offset
0: .line 440
aload 1 /* buffer */
iload 2 /* offset */
invokevirtual java.nio.ByteBuffer.getChar:(I)C
istore 3 /* subtableFormat */
start local 3 // int subtableFormat
1: .line 441
iload 3 /* subtableFormat */
bipush 14
if_icmpne 11
2: .line 442
aload 1 /* buffer */
iload 2 /* offset */
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.getInt:(I)I
ldc 2147483647
iand
i2l
lstore 4 /* subtableLength */
start local 4 // long subtableLength
3: .line 443
iload 2 /* offset */
i2l
lload 4 /* subtableLength */
ladd
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
lcmp
ifle 7
4: .line 444
invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 7
5: .line 445
invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
6: .line 446
ldc "Cmap UVS subtable overflows buffer."
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
7: .line 450
StackMap locals: int long
StackMap stack:
aload 0 /* this */
new sun.font.CMap$UVS
dup
aload 1 /* buffer */
iload 2 /* offset */
invokespecial sun.font.CMap$UVS.<init>:(Ljava/nio/ByteBuffer;I)V
putfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
8: .line 451
goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 6 /* t */
start local 6 // java.lang.Throwable t
10: .line 452
aload 6 /* t */
invokevirtual java.lang.Throwable.printStackTrace:()V
end local 6 // java.lang.Throwable t
end local 4 // long subtableLength
11: .line 455
StackMap locals:
StackMap stack:
return
end local 3 // int subtableFormat
end local 2 // int offset
end local 1 // java.nio.ByteBuffer buffer
end local 0 // sun.font.CMap this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/font/CMap;
0 12 1 buffer Ljava/nio/ByteBuffer;
0 12 2 offset I
1 12 3 subtableFormat I
3 11 4 subtableLength J
10 11 6 t Ljava/lang/Throwable;
Exception table:
from to target type
7 8 9 Class java.lang.Throwable
MethodParameters:
Name Flags
buffer
offset
abstract char getGlyph(int);
descriptor: (I)C
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
charCode
final int getControlCodeGlyph(int, boolean);
descriptor: (IZ)I
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 // sun.font.CMap this
start local 1 // int charCode
start local 2 // boolean noSurrogates
0: .line 1092
iload 1 /* charCode */
bipush 16
if_icmpge 4
1: .line 1093
iload 1 /* charCode */
tableswitch { // 9 - 13
9: 2
10: 2
11: 3
12: 3
13: 2
default: 3
}
2: .line 1096
StackMap locals:
StackMap stack:
ldc 65535
ireturn
3: .line 1098
StackMap locals:
StackMap stack:
goto 6
StackMap locals:
StackMap stack:
4: iload 2 /* noSurrogates */
ifeq 6
iload 1 /* charCode */
ldc 65535
if_icmplt 6
5: .line 1099
iconst_0
ireturn
6: .line 1101
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 2 // boolean noSurrogates
end local 1 // int charCode
end local 0 // sun.font.CMap this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/font/CMap;
0 7 1 charCode I
0 7 2 noSurrogates Z
MethodParameters:
Name Flags
charCode
noSurrogates
final char getFormatCharGlyph(int);
descriptor: (I)C
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.font.CMap this
start local 1 // int charCode
0: .line 1105
iload 1 /* charCode */
sipush 8204
if_icmplt 5
1: .line 1106
iload 1 /* charCode */
sipush 8207
if_icmple 4
2: .line 1107
iload 1 /* charCode */
sipush 8232
if_icmplt 3
iload 1 /* charCode */
sipush 8238
if_icmple 4
3: .line 1108
StackMap locals:
StackMap stack:
iload 1 /* charCode */
sipush 8298
if_icmplt 5
iload 1 /* charCode */
sipush 8303
if_icmpgt 5
4: .line 1109
StackMap locals:
StackMap stack:
ldc 65535
ireturn
5: .line 1112
StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 // int charCode
end local 0 // sun.font.CMap this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/font/CMap;
0 6 1 charCode I
MethodParameters:
Name Flags
charCode
char getVariationGlyph(int, int);
descriptor: (II)C
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 // sun.font.CMap this
start local 1 // int charCode
start local 2 // int variationSelector
0: .line 1195
iconst_0
istore 3 /* glyph */
start local 3 // char glyph
1: .line 1196
aload 0 /* this */
getfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
ifnonnull 4
2: .line 1197
aload 0 /* this */
iload 1 /* charCode */
invokevirtual sun.font.CMap.getGlyph:(I)C
istore 3 /* glyph */
3: .line 1198
goto 9
4: .line 1199
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
iload 1 /* charCode */
iload 2 /* variationSelector */
invokevirtual sun.font.CMap$UVS.getGlyph:(II)I
istore 4 /* result */
start local 4 // int result
5: .line 1200
iload 4 /* result */
ifle 8
6: .line 1201
iload 4 /* result */
ldc 65535
iand
i2c
istore 3 /* glyph */
7: .line 1202
goto 9
8: .line 1203
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* charCode */
invokevirtual sun.font.CMap.getGlyph:(I)C
istore 3 /* glyph */
end local 4 // int result
9: .line 1206
StackMap locals:
StackMap stack:
iload 3 /* glyph */
ireturn
end local 3 // char glyph
end local 2 // int variationSelector
end local 1 // int charCode
end local 0 // sun.font.CMap this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/font/CMap;
0 10 1 charCode I
0 10 2 variationSelector I
1 10 3 glyph C
5 9 4 result I
MethodParameters:
Name Flags
charCode
variationSelector
}
SourceFile: "CMap.java"
NestMembers:
sun.font.CMap$CMapFormat0 sun.font.CMap$CMapFormat10 sun.font.CMap$CMapFormat12 sun.font.CMap$CMapFormat2 sun.font.CMap$CMapFormat4 sun.font.CMap$CMapFormat6 sun.font.CMap$CMapFormat8 sun.font.CMap$NullCMapClass sun.font.CMap$UVS
InnerClasses:
CMapFormat0 = sun.font.CMap$CMapFormat0 of sun.font.CMap
CMapFormat10 = sun.font.CMap$CMapFormat10 of sun.font.CMap
CMapFormat12 = sun.font.CMap$CMapFormat12 of sun.font.CMap
CMapFormat2 = sun.font.CMap$CMapFormat2 of sun.font.CMap
CMapFormat4 = sun.font.CMap$CMapFormat4 of sun.font.CMap
CMapFormat6 = sun.font.CMap$CMapFormat6 of sun.font.CMap
CMapFormat8 = sun.font.CMap$CMapFormat8 of sun.font.CMap
NullCMapClass = sun.font.CMap$NullCMapClass of sun.font.CMap
UVS = sun.font.CMap$UVS of sun.font.CMap