public class sun.font.TrueTypeGlyphMapper extends sun.font.CharToGlyphMapper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.font.TrueTypeGlyphMapper
super_class: sun.font.CharToGlyphMapper
{
static final char REVERSE_SOLIDUS;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 92
static final char JA_YEN;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 165
static final boolean isJAlocale;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
sun.font.TrueTypeFont font;
descriptor: Lsun/font/TrueTypeFont;
flags: (0x0000)
sun.font.CMap cmap;
descriptor: Lsun/font/CMap;
flags: (0x0000)
int numGlyphs;
descriptor: I
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic java.util.Locale.JAPAN:Ljava/util/Locale;
invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
putstatic sun.font.TrueTypeGlyphMapper.isJAlocale:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(sun.font.TrueTypeFont);
descriptor: (Lsun/font/TrueTypeFont;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial sun.font.CharToGlyphMapper.<init>:()V
1: aload 0
aload 1
putfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
2: aload 0
aload 1
invokestatic sun.font.CMap.initialize:(Lsun/font/TrueTypeFont;)Lsun/font/CMap;
putfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
3: goto 6
StackMap locals: sun.font.TrueTypeGlyphMapper sun.font.TrueTypeFont
StackMap stack: java.lang.Exception
4: pop
5: aload 0
aconst_null
putfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
ifnonnull 8
7: aload 0
invokevirtual sun.font.TrueTypeGlyphMapper.handleBadCMAP:()V
8: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.font.TrueTypeGlyphMapper.missingGlyph:I
9: aload 1
ldc 1835104368
invokevirtual sun.font.TrueTypeFont.getTableBuffer:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 10: aload 2
ifnull 13
aload 2
invokevirtual java.nio.ByteBuffer.capacity:()I
bipush 6
if_icmplt 13
11: aload 0
aload 2
iconst_4
invokevirtual java.nio.ByteBuffer.getChar:(I)C
putfield sun.font.TrueTypeGlyphMapper.numGlyphs:I
12: goto 14
13: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
invokevirtual sun.font.TrueTypeGlyphMapper.handleBadCMAP:()V
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/font/TrueTypeGlyphMapper;
0 15 1 font Lsun/font/TrueTypeFont;
10 15 2 buffer Ljava/nio/ByteBuffer;
Exception table:
from to target type
2 3 4 Class java.lang.Exception
MethodParameters:
Name Flags
font
public int getNumGlyphs();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.font.TrueTypeGlyphMapper.numGlyphs:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/TrueTypeGlyphMapper;
private char getGlyphFromCMAP(int);
descriptor: (I)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
iload 1
invokevirtual sun.font.CMap.getGlyph:(I)C
istore 2
start local 2 1: iload 2
aload 0
getfield sun.font.TrueTypeGlyphMapper.numGlyphs:I
if_icmplt 3
2: iload 2
ldc 65534
if_icmplt 5
3: StackMap locals: int
StackMap stack:
iload 2
4: ireturn
5: StackMap locals:
StackMap stack:
invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 12
6: invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
7: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " out of range glyph id="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: iload 2
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc " for char "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.missingGlyph:I
i2c
13: ireturn
end local 2 14: StackMap locals: sun.font.TrueTypeGlyphMapper int
StackMap stack: java.lang.Exception
pop
15: aload 0
invokevirtual sun.font.TrueTypeGlyphMapper.handleBadCMAP:()V
16: aload 0
getfield sun.font.TrueTypeGlyphMapper.missingGlyph:I
i2c
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/font/TrueTypeGlyphMapper;
0 17 1 charCode I
1 14 2 glyphCode C
Exception table:
from to target type
0 4 14 Class java.lang.Exception
5 13 14 Class java.lang.Exception
MethodParameters:
Name Flags
charCode
private char getGlyphFromCMAP(int, int);
descriptor: (II)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 2
1: aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
iload 1
3: iload 2
4: invokevirtual sun.font.CMap.getVariationGlyph:(II)C
istore 3
start local 3 5: iload 3
aload 0
getfield sun.font.TrueTypeGlyphMapper.numGlyphs:I
if_icmplt 7
6: iload 3
ldc 65534
if_icmplt 9
7: StackMap locals: int
StackMap stack:
iload 3
8: ireturn
9: StackMap locals:
StackMap stack:
invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 17
10: invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
11: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " out of range glyph id="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: iload 3
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc " for char "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc " for vs "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.missingGlyph:I
i2c
18: ireturn
end local 3 19: StackMap locals: sun.font.TrueTypeGlyphMapper int int
StackMap stack: java.lang.Exception
pop
20: aload 0
invokevirtual sun.font.TrueTypeGlyphMapper.handleBadCMAP:()V
21: aload 0
getfield sun.font.TrueTypeGlyphMapper.missingGlyph:I
i2c
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/font/TrueTypeGlyphMapper;
0 22 1 charCode I
0 22 2 variationSelector I
5 19 3 glyphCode C
Exception table:
from to target type
2 8 19 Class java.lang.Exception
9 18 19 Class java.lang.Exception
MethodParameters:
Name Flags
charCode
variationSelector
private void handleBadCMAP();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: invokestatic sun.font.FontUtilities.isLogging:()Z
ifeq 4
1: invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
new java.lang.StringBuilder
dup
ldc "Null Cmap for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: ldc "substituting for this font"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual sun.util.logging.PlatformLogger.severe:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual sun.font.SunFontManager.deRegisterBadFont:(Lsun/font/Font2D;)V
5: aload 0
getstatic sun.font.CMap.theNullCmap:Lsun/font/CMap$NullCMapClass;
putfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/font/TrueTypeGlyphMapper;
private char remapJAChar(char);
descriptor: (C)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 92
if_icmpne 1
sipush 165
goto 2
StackMap locals:
StackMap stack:
1: iload 1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/TrueTypeGlyphMapper;
0 3 1 unicode C
MethodParameters:
Name Flags
unicode
private int remapJAIntChar(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 92
if_icmpne 1
sipush 165
goto 2
StackMap locals:
StackMap stack:
1: iload 1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/font/TrueTypeGlyphMapper;
0 3 1 unicode I
MethodParameters:
Name Flags
unicode
public int charToGlyph(char);
descriptor: (C)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
istore 2
start local 2 1: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/TrueTypeGlyphMapper;
0 2 1 unicode C
1 2 2 glyph I
MethodParameters:
Name Flags
unicode
public int charToGlyph(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
istore 2
start local 2 1: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/TrueTypeGlyphMapper;
0 2 1 unicode I
1 2 2 glyph I
MethodParameters:
Name Flags
unicode
public int charToVariationGlyph(int, int);
descriptor: (II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(II)C
istore 3
start local 3 1: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/font/TrueTypeGlyphMapper;
0 2 1 unicode I
0 2 2 variationSelector I
1 2 3 glyph I
MethodParameters:
Name Flags
unicode
variationSelector
public void charsToGlyphs(int, int[], int[]);
descriptor: (I[I[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 3
iload 4
aload 0
aload 2
iload 4
iaload
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
3: iinc 4 1
StackMap locals:
StackMap stack:
4: iload 4
iload 1
if_icmplt 2
end local 4 5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/font/TrueTypeGlyphMapper;
0 6 1 count I
0 6 2 unicodes [I
0 6 3 glyphs [I
1 5 4 i I
MethodParameters:
Name Flags
count
unicodes
glyphs
public void charsToGlyphs(int, char[], int[]);
descriptor: (I[C[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 23
2: StackMap locals: int
StackMap stack:
aload 2
iload 4
caload
istore 5
start local 5 3: iload 5
ldc 55296
if_icmplt 21
4: iload 5
ldc 56319
if_icmpgt 21
iload 4
iload 1
iconst_1
isub
if_icmpge 21
5: aload 2
iload 4
iconst_1
iadd
caload
istore 6
start local 6 6: iload 6
ldc 56320
if_icmplt 21
7: iload 6
ldc 57343
if_icmpgt 21
8: iload 5
ldc 55296
isub
9: sipush 1024
10: imul
11: iload 6
12: iadd
13: ldc 56320
14: isub
15: ldc 65536
16: iadd
istore 5
17: aload 3
iload 4
aload 0
iload 5
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
18: iinc 4 1
19: aload 3
iload 4
ldc 65535
iastore
20: goto 22
end local 6 21: StackMap locals: int
StackMap stack:
aload 3
iload 4
aload 0
iload 5
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
end local 5 22: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
23: iload 4
iload 1
if_icmplt 2
end local 4 24: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/font/TrueTypeGlyphMapper;
0 25 1 count I
0 25 2 unicodes [C
0 25 3 glyphs [I
1 24 4 i I
3 22 5 code I
6 21 6 low C
MethodParameters:
Name Flags
count
unicodes
glyphs
public boolean charsToGlyphsNS(int, char[], int[]);
descriptor: (I[C[I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 27
2: StackMap locals: int
StackMap stack:
aload 2
iload 4
caload
istore 5
start local 5 3: iload 5
ldc 55296
if_icmplt 18
4: iload 5
ldc 56319
if_icmpgt 18
iload 4
iload 1
iconst_1
isub
if_icmpge 18
5: aload 2
iload 4
iconst_1
iadd
caload
istore 6
start local 6 6: iload 6
ldc 56320
if_icmplt 18
7: iload 6
ldc 57343
if_icmpgt 18
8: iload 5
ldc 55296
isub
9: sipush 1024
10: imul
11: iload 6
12: iadd
13: ldc 56320
14: isub
15: ldc 65536
16: iadd
istore 5
17: aload 3
iload 4
iconst_1
iadd
ldc 65535
iastore
end local 6 18: StackMap locals: int
StackMap stack:
aload 3
iload 4
aload 0
iload 5
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
19: iload 5
sipush 768
if_icmpge 21
20: goto 26
21: StackMap locals:
StackMap stack:
iload 5
invokestatic sun.font.FontUtilities.isComplexCharCode:(I)Z
ifne 23
22: iload 5
invokestatic sun.font.CharToGlyphMapper.isVariationSelector:(I)Z
ifeq 24
23: StackMap locals:
StackMap stack:
iconst_1
ireturn
24: StackMap locals:
StackMap stack:
iload 5
ldc 65536
if_icmplt 26
25: iinc 4 1
end local 5 26: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
27: iload 4
iload 1
if_icmplt 2
end local 4 28: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/font/TrueTypeGlyphMapper;
0 29 1 count I
0 29 2 unicodes [C
0 29 3 glyphs [I
1 28 4 i I
3 26 5 code I
6 18 6 low C
MethodParameters:
Name Flags
count
unicodes
glyphs
boolean hasSupplementaryChars();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
instanceof sun.font.CMap$CMapFormat8
ifne 4
1: aload 0
getfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
instanceof sun.font.CMap$CMapFormat10
ifne 4
2: aload 0
getfield sun.font.TrueTypeGlyphMapper.cmap:Lsun/font/CMap;
instanceof sun.font.CMap$CMapFormat12
ifne 4
3: iconst_0
ireturn
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/font/TrueTypeGlyphMapper;
}
SourceFile: "TrueTypeGlyphMapper.java"
InnerClasses:
CMapFormat10 = sun.font.CMap$CMapFormat10 of sun.font.CMap
CMapFormat12 = sun.font.CMap$CMapFormat12 of sun.font.CMap
CMapFormat8 = sun.font.CMap$CMapFormat8 of sun.font.CMap