class sun.font.SunFontManager$2 implements java.security.PrivilegedAction<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.font.SunFontManager$2
super_class: java.lang.Object
{
final sun.font.SunFontManager this$0;
descriptor: Lsun/font/SunFontManager;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.font.SunFontManager);
descriptor: (Lsun/font/SunFontManager;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.font.SunFontManager$2 this
0: .line 386
aload 0 /* this */
aload 1
putfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // sun.font.SunFontManager$2 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/font/SunFontManager$2;
MethodParameters:
Name Flags
this$0 final
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 // sun.font.SunFontManager$2 this
0: .line 389
new java.io.File
dup
new java.lang.StringBuilder
dup
getstatic sun.font.SunFontManager.jreFontDirName:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: .line 390
ldc "badfonts.txt"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: .line 389
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
3: .line 388
astore 1 /* badFontFile */
start local 1 // java.io.File badFontFile
4: .line 391
aload 1 /* badFontFile */
invokevirtual java.io.File.exists:()Z
ifeq 24
5: .line 392
aconst_null
astore 2 /* fis */
start local 2 // java.io.FileInputStream fis
6: .line 394
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.font.SunFontManager.badFonts:Ljava/util/ArrayList;
7: .line 395
new java.io.FileInputStream
dup
aload 1 /* badFontFile */
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 2 /* fis */
8: .line 396
new java.io.InputStreamReader
dup
aload 2 /* fis */
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
astore 3 /* isr */
start local 3 // java.io.InputStreamReader isr
9: .line 397
new java.io.BufferedReader
dup
aload 3 /* isr */
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 4 /* br */
start local 4 // java.io.BufferedReader br
10: .line 399
StackMap locals: sun.font.SunFontManager$2 java.io.File java.io.FileInputStream java.io.InputStreamReader java.io.BufferedReader
StackMap stack:
aload 4 /* br */
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 5 /* name */
start local 5 // java.lang.String name
11: .line 400
aload 5 /* name */
ifnonnull 13
12: .line 401
goto 24
13: .line 403
StackMap locals: java.lang.String
StackMap stack:
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 17
14: .line 404
invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
new java.lang.StringBuilder
dup
ldc "read bad font: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: .line 405
aload 5 /* name */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: .line 404
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
17: .line 407
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.badFonts:Ljava/util/ArrayList;
aload 5 /* name */
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 5 // java.lang.String name
18: .line 398
goto 10
end local 4 // java.io.BufferedReader br
end local 3 // java.io.InputStreamReader isr
19: .line 410
StackMap locals: sun.font.SunFontManager$2 java.io.File java.io.FileInputStream
StackMap stack: java.io.IOException
pop
20: .line 412
aload 2 /* fis */
ifnull 24
21: .line 413
aload 2 /* fis */
invokevirtual java.io.FileInputStream.close:()V
22: .line 415
goto 24
StackMap locals:
StackMap stack: java.io.IOException
23: pop
end local 2 // java.io.FileInputStream fis
24: .line 430
StackMap locals:
StackMap stack:
getstatic sun.font.FontUtilities.isLinux:Z
ifeq 26
25: .line 432
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getstatic sun.font.SunFontManager.jreFontDirName:Ljava/lang/String;
invokevirtual sun.font.SunFontManager.registerFontDir:(Ljava/lang/String;)V
26: .line 434
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getstatic sun.font.SunFontManager.jreFontDirName:Ljava/lang/String;
iconst_1
iconst_2
27: .line 435
iconst_1
iconst_0
28: .line 434
invokevirtual sun.font.SunFontManager.registerFontsInDir:(Ljava/lang/String;ZIZZ)V
29: .line 440
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
invokevirtual sun.font.SunFontManager.createFontConfiguration:()Lsun/awt/FontConfiguration;
putfield sun.font.SunFontManager.fontConfig:Lsun/awt/FontConfiguration;
30: .line 441
invokestatic sun.font.SunFontManager.isOpenJDK:()Z
ifeq 34
31: .line 442
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
invokevirtual sun.font.SunFontManager.getDefaultPlatformFont:()[Ljava/lang/String;
astore 2 /* fontInfo */
start local 2 // java.lang.String[] fontInfo
32: .line 443
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 2 /* fontInfo */
iconst_0
aaload
putfield sun.font.SunFontManager.defaultFontName:Ljava/lang/String;
33: .line 444
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 2 /* fontInfo */
iconst_1
aaload
putfield sun.font.SunFontManager.defaultFontFileName:Ljava/lang/String;
end local 2 // java.lang.String[] fontInfo
34: .line 447
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.fontConfig:Lsun/awt/FontConfiguration;
invokevirtual sun.awt.FontConfiguration.getExtraFontPath:()Ljava/lang/String;
astore 2 /* extraFontPath */
start local 2 // java.lang.String extraFontPath
35: .line 475
iconst_0
istore 3 /* prependToPath */
start local 3 // boolean prependToPath
36: .line 476
iconst_0
istore 4 /* appendToPath */
start local 4 // boolean appendToPath
37: .line 478
ldc "sun.java2d.fontpath"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
38: .line 477
astore 5 /* dbgFontPath */
start local 5 // java.lang.String dbgFontPath
39: .line 480
aload 5 /* dbgFontPath */
ifnull 49
40: .line 481
aload 5 /* dbgFontPath */
ldc "prepend:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 45
41: .line 482
iconst_1
istore 3 /* prependToPath */
42: .line 484
aload 5 /* dbgFontPath */
ldc "prepend:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
43: .line 483
astore 5 /* dbgFontPath */
44: .line 485
goto 49
StackMap locals: sun.font.SunFontManager$2 java.io.File java.lang.String int int java.lang.String
StackMap stack:
45: aload 5 /* dbgFontPath */
ldc "append:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 49
46: .line 486
iconst_1
istore 4 /* appendToPath */
47: .line 488
aload 5 /* dbgFontPath */
ldc "append:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
48: .line 487
astore 5 /* dbgFontPath */
49: .line 492
StackMap locals:
StackMap stack:
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 54
50: .line 493
invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
astore 6 /* logger */
start local 6 // sun.util.logging.PlatformLogger logger
51: .line 494
aload 6 /* logger */
new java.lang.StringBuilder
dup
ldc "JRE font directory: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic sun.font.SunFontManager.jreFontDirName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;)V
52: .line 495
aload 6 /* logger */
new java.lang.StringBuilder
dup
ldc "Extra font path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* extraFontPath */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;)V
53: .line 496
aload 6 /* logger */
new java.lang.StringBuilder
dup
ldc "Debug font path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5 /* dbgFontPath */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;)V
end local 6 // sun.util.logging.PlatformLogger logger
54: .line 499
StackMap locals:
StackMap stack:
aload 5 /* dbgFontPath */
ifnull 73
55: .line 503
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getstatic sun.font.SunFontManager.noType1Font:Z
invokevirtual sun.font.SunFontManager.getPlatformFontPath:(Z)Ljava/lang/String;
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
56: .line 505
aload 2 /* extraFontPath */
ifnull 60
57: .line 506
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
58: .line 507
new java.lang.StringBuilder
dup
aload 2 /* extraFontPath */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
59: .line 506
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
60: .line 509
StackMap locals:
StackMap stack:
iload 4 /* appendToPath */
ifeq 65
61: .line 510
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
62: .line 511
new java.lang.StringBuilder
dup
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5 /* dbgFontPath */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
63: .line 510
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
64: .line 512
goto 71
StackMap locals:
StackMap stack:
65: iload 3 /* prependToPath */
ifeq 70
66: .line 513
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
67: .line 514
new java.lang.StringBuilder
dup
aload 5 /* dbgFontPath */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
68: .line 513
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
69: .line 515
goto 71
70: .line 516
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 5 /* dbgFontPath */
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
71: .line 518
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
invokevirtual sun.font.SunFontManager.registerFontDirs:(Ljava/lang/String;)V
72: .line 519
goto 75
StackMap locals:
StackMap stack:
73: aload 2 /* extraFontPath */
ifnull 75
74: .line 533
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 2 /* extraFontPath */
invokevirtual sun.font.SunFontManager.registerFontDirs:(Ljava/lang/String;)V
75: .line 550
StackMap locals:
StackMap stack:
getstatic sun.font.FontUtilities.isSolaris:Z
ifeq 77
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
ifeq 77
76: .line 551
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
ldc "/usr/openwin/lib/locale/ja/X11/fonts/TT"
invokevirtual sun.font.SunFontManager.registerFontDir:(Ljava/lang/String;)V
77: .line 554
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.fontConfig:Lsun/awt/FontConfiguration;
aconst_null
invokevirtual sun.font.SunFontManager.initCompositeFonts:(Lsun/awt/FontConfiguration;Ljava/util/concurrent/ConcurrentHashMap;)V
78: .line 556
aconst_null
areturn
end local 5 // java.lang.String dbgFontPath
end local 4 // boolean appendToPath
end local 3 // boolean prependToPath
end local 2 // java.lang.String extraFontPath
end local 1 // java.io.File badFontFile
end local 0 // sun.font.SunFontManager$2 this
LocalVariableTable:
Start End Slot Name Signature
0 79 0 this Lsun/font/SunFontManager$2;
4 79 1 badFontFile Ljava/io/File;
6 24 2 fis Ljava/io/FileInputStream;
9 19 3 isr Ljava/io/InputStreamReader;
10 19 4 br Ljava/io/BufferedReader;
11 18 5 name Ljava/lang/String;
32 34 2 fontInfo [Ljava/lang/String;
35 79 2 extraFontPath Ljava/lang/String;
36 79 3 prependToPath Z
37 79 4 appendToPath Z
39 79 5 dbgFontPath Ljava/lang/String;
51 54 6 logger Lsun/util/logging/PlatformLogger;
Exception table:
from to target type
6 19 19 Class java.io.IOException
20 22 23 Class java.io.IOException
}
Signature: Ljava/lang/Object;Ljava/security/PrivilegedAction<Ljava/lang/Object;>;
SourceFile: "SunFontManager.java"
EnclosingMethod: sun.font.SunFontManager.<init>:()V
NestHost: sun.font.SunFontManager
InnerClasses:
sun.font.SunFontManager$2