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
private final boolean needsJAremapping;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, 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:
getstatic sun.font.FontUtilities.isSolaris:Z
ifeq 17
getstatic sun.font.TrueTypeGlyphMapper.isJAlocale:Z
ifeq 17
aload 1
invokevirtual sun.font.TrueTypeFont.supportsJA:()Z
ifeq 17
15: aload 0
iconst_1
putfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/font/TrueTypeGlyphMapper;
0 19 1 font Lsun/font/TrueTypeFont;
10 19 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 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 final char remapJAChar(char);
descriptor: (C)C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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 final int remapJAIntChar(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
ifeq 2
1: aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.remapJAChar:(C)C
istore 1
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
istore 2
start local 2 3: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual sun.font.TrueTypeFont.checkUseNatives:()Z
ifeq 5
iload 2
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
arraylength
if_icmpge 5
4: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
iload 2
iload 1
castore
5: StackMap locals: int
StackMap stack:
iload 2
ireturn
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 unicode C
3 6 2 glyph I
MethodParameters:
Name Flags
unicode
public int charToGlyph(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
ifeq 2
1: aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.remapJAIntChar:(I)I
istore 1
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
istore 2
start local 2 3: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual sun.font.TrueTypeFont.checkUseNatives:()Z
ifeq 5
iload 2
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
arraylength
if_icmpge 5
4: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
iload 2
iload 1
i2c
castore
5: StackMap locals: int
StackMap stack:
iload 2
ireturn
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 unicode I
3 6 2 glyph I
MethodParameters:
Name Flags
unicode
public void charsToGlyphs(int, int[], int[]);
descriptor: (I[I[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, 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 10
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
ifeq 5
3: aload 3
iload 4
aload 0
aload 0
aload 2
iload 4
iaload
invokevirtual sun.font.TrueTypeGlyphMapper.remapJAIntChar:(I)I
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
4: goto 6
5: StackMap locals:
StackMap stack:
aload 3
iload 4
aload 0
aload 2
iload 4
iaload
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual sun.font.TrueTypeFont.checkUseNatives:()Z
ifeq 9
7: aload 3
iload 4
iaload
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
arraylength
if_icmpge 9
8: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
aload 3
iload 4
iaload
aload 2
iload 4
iaload
i2c
castore
9: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
iload 1
if_icmplt 2
end local 4 11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/font/TrueTypeGlyphMapper;
0 12 1 count I
0 12 2 unicodes [I
0 12 3 glyphs [I
1 11 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 29
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
ifeq 5
3: aload 0
aload 2
iload 4
caload
invokevirtual sun.font.TrueTypeGlyphMapper.remapJAChar:(C)C
istore 5
start local 5 4: goto 6
end local 5 5: StackMap locals:
StackMap stack:
aload 2
iload 4
caload
istore 5
start local 5 6: StackMap locals: int
StackMap stack:
iload 5
ldc 55296
if_icmplt 24
7: iload 5
ldc 56319
if_icmpgt 24
iload 4
iload 1
iconst_1
isub
if_icmpge 24
8: aload 2
iload 4
iconst_1
iadd
caload
istore 6
start local 6 9: iload 6
ldc 56320
if_icmplt 24
10: iload 6
ldc 57343
if_icmpgt 24
11: iload 5
ldc 55296
isub
12: sipush 1024
13: imul
14: iload 6
15: iadd
16: ldc 56320
17: isub
18: ldc 65536
19: iadd
istore 5
20: aload 3
iload 4
aload 0
iload 5
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
21: iinc 4 1
22: aload 3
iload 4
ldc 65535
iastore
23: goto 28
end local 6 24: StackMap locals:
StackMap stack:
aload 3
iload 4
aload 0
iload 5
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
25: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual sun.font.TrueTypeFont.checkUseNatives:()Z
ifeq 28
26: aload 3
iload 4
iaload
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
arraylength
if_icmpge 28
27: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
aload 3
iload 4
iaload
iload 5
i2c
castore
end local 5 28: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
29: iload 4
iload 1
if_icmplt 2
end local 4 30: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/font/TrueTypeGlyphMapper;
0 31 1 count I
0 31 2 unicodes [C
0 31 3 glyphs [I
1 30 4 i I
4 5 5 code I
6 28 5 code I
9 24 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 32
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.font.TrueTypeGlyphMapper.needsJAremapping:Z
ifeq 5
3: aload 0
aload 2
iload 4
caload
invokevirtual sun.font.TrueTypeGlyphMapper.remapJAChar:(C)C
istore 5
start local 5 4: goto 6
end local 5 5: StackMap locals:
StackMap stack:
aload 2
iload 4
caload
istore 5
start local 5 6: StackMap locals: int
StackMap stack:
iload 5
ldc 55296
if_icmplt 21
7: iload 5
ldc 56319
if_icmpgt 21
iload 4
iload 1
iconst_1
isub
if_icmpge 21
8: aload 2
iload 4
iconst_1
iadd
caload
istore 6
start local 6 9: iload 6
ldc 56320
if_icmplt 21
10: iload 6
ldc 57343
if_icmpgt 21
11: iload 5
ldc 55296
isub
12: sipush 1024
13: imul
14: iload 6
15: iadd
16: ldc 56320
17: isub
18: ldc 65536
19: iadd
istore 5
20: aload 3
iload 4
iconst_1
iadd
ldc 65535
iastore
end local 6 21: StackMap locals:
StackMap stack:
aload 3
iload 4
aload 0
iload 5
invokevirtual sun.font.TrueTypeGlyphMapper.getGlyphFromCMAP:(I)C
iastore
22: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
invokevirtual sun.font.TrueTypeFont.checkUseNatives:()Z
ifeq 25
23: aload 3
iload 4
iaload
aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
arraylength
if_icmpge 25
24: aload 0
getfield sun.font.TrueTypeGlyphMapper.font:Lsun/font/TrueTypeFont;
getfield sun.font.TrueTypeFont.glyphToCharMap:[C
aload 3
iload 4
iaload
iload 5
i2c
castore
25: StackMap locals:
StackMap stack:
iload 5
sipush 768
if_icmpge 27
26: goto 31
27: StackMap locals:
StackMap stack:
iload 5
invokestatic sun.font.FontUtilities.isComplexCharCode:(I)Z
ifeq 29
28: iconst_1
ireturn
29: StackMap locals:
StackMap stack:
iload 5
ldc 65536
if_icmplt 31
30: iinc 4 1
end local 5 31: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
32: iload 4
iload 1
if_icmplt 2
end local 4 33: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/font/TrueTypeGlyphMapper;
0 34 1 count I
0 34 2 unicodes [C
0 34 3 glyphs [I
1 33 4 i I
4 5 5 code I
6 31 5 code I
9 21 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