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 320
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=8, args_size=1
start local 0 // sun.font.SunFontManager$2 this
0: .line 323
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 324
ldc "badfonts.txt"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: .line 323
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
3: .line 322
astore 1 /* badFontFile */
start local 1 // java.io.File badFontFile
4: .line 325
aload 1 /* badFontFile */
invokevirtual java.io.File.exists:()Z
ifeq 24
5: .line 326
aconst_null
astore 2 /* fis */
start local 2 // java.io.FileInputStream fis
6: .line 328
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 329
new java.io.FileInputStream
dup
aload 1 /* badFontFile */
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 2 /* fis */
8: .line 330
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 331
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 333
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 334
aload 5 /* name */
ifnonnull 13
12: .line 335
goto 24
13: .line 337
StackMap locals: java.lang.String
StackMap stack:
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 17
14: .line 338
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 339
aload 5 /* name */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: .line 338
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
17: .line 341
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 332
goto 10
end local 4 // java.io.BufferedReader br
end local 3 // java.io.InputStreamReader isr
19: .line 344
StackMap locals: sun.font.SunFontManager$2 java.io.File java.io.FileInputStream
StackMap stack: java.io.IOException
pop
20: .line 346
aload 2 /* fis */
ifnull 24
21: .line 347
aload 2 /* fis */
invokevirtual java.io.FileInputStream.close:()V
22: .line 349
goto 24
StackMap locals:
StackMap stack: java.io.IOException
23: pop
end local 2 // java.io.FileInputStream fis
24: .line 364
StackMap locals:
StackMap stack:
getstatic sun.font.FontUtilities.isLinux:Z
ifeq 26
25: .line 366
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 368
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 369
iconst_1
iconst_0
28: .line 368
invokevirtual sun.font.SunFontManager.registerFontsInDir:(Ljava/lang/String;ZIZZ)V
29: .line 374
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 376
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
31: .line 377
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;
32: .line 378
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;
33: .line 380
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 3 /* extraFontPath */
start local 3 // java.lang.String extraFontPath
34: .line 408
iconst_0
istore 4 /* prependToPath */
start local 4 // boolean prependToPath
35: .line 409
iconst_0
istore 5 /* appendToPath */
start local 5 // boolean appendToPath
36: .line 411
ldc "sun.java2d.fontpath"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
37: .line 410
astore 6 /* dbgFontPath */
start local 6 // java.lang.String dbgFontPath
38: .line 413
aload 6 /* dbgFontPath */
ifnull 48
39: .line 414
aload 6 /* dbgFontPath */
ldc "prepend:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 44
40: .line 415
iconst_1
istore 4 /* prependToPath */
41: .line 417
aload 6 /* dbgFontPath */
ldc "prepend:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
42: .line 416
astore 6 /* dbgFontPath */
43: .line 418
goto 48
StackMap locals: sun.font.SunFontManager$2 java.io.File java.lang.String[] java.lang.String int int java.lang.String
StackMap stack:
44: aload 6 /* dbgFontPath */
ldc "append:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 48
45: .line 419
iconst_1
istore 5 /* appendToPath */
46: .line 421
aload 6 /* dbgFontPath */
ldc "append:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
47: .line 420
astore 6 /* dbgFontPath */
48: .line 425
StackMap locals:
StackMap stack:
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 53
49: .line 426
invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
astore 7 /* logger */
start local 7 // sun.util.logging.PlatformLogger logger
50: .line 427
aload 7 /* 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
51: .line 428
aload 7 /* logger */
new java.lang.StringBuilder
dup
ldc "Extra font path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3 /* 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
52: .line 429
aload 7 /* logger */
new java.lang.StringBuilder
dup
ldc "Debug font path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6 /* 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 7 // sun.util.logging.PlatformLogger logger
53: .line 432
StackMap locals:
StackMap stack:
aload 6 /* dbgFontPath */
ifnull 72
54: .line 436
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;
55: .line 438
aload 3 /* extraFontPath */
ifnull 59
56: .line 439
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
57: .line 440
new java.lang.StringBuilder
dup
aload 3 /* 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;
58: .line 439
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
59: .line 442
StackMap locals:
StackMap stack:
iload 5 /* appendToPath */
ifeq 64
60: .line 443
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
61: .line 444
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 6 /* dbgFontPath */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
62: .line 443
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
63: .line 445
goto 70
StackMap locals:
StackMap stack:
64: iload 4 /* prependToPath */
ifeq 69
65: .line 446
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
66: .line 447
new java.lang.StringBuilder
dup
aload 6 /* 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;
67: .line 446
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
68: .line 448
goto 70
69: .line 449
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 6 /* dbgFontPath */
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
70: .line 451
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
71: .line 452
goto 74
StackMap locals:
StackMap stack:
72: aload 3 /* extraFontPath */
ifnull 74
73: .line 466
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
aload 3 /* extraFontPath */
invokevirtual sun.font.SunFontManager.registerFontDirs:(Ljava/lang/String;)V
74: .line 483
StackMap locals:
StackMap stack:
getstatic sun.font.FontUtilities.isSolaris:Z
ifeq 76
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 76
75: .line 484
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
76: .line 487
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
77: .line 489
aconst_null
areturn
end local 6 // java.lang.String dbgFontPath
end local 5 // boolean appendToPath
end local 4 // boolean prependToPath
end local 3 // java.lang.String extraFontPath
end local 2 // java.lang.String[] fontInfo
end local 1 // java.io.File badFontFile
end local 0 // sun.font.SunFontManager$2 this
LocalVariableTable:
Start End Slot Name Signature
0 78 0 this Lsun/font/SunFontManager$2;
4 78 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;
31 78 2 fontInfo [Ljava/lang/String;
34 78 3 extraFontPath Ljava/lang/String;
35 78 4 prependToPath Z
36 78 5 appendToPath Z
38 78 6 dbgFontPath Ljava/lang/String;
50 53 7 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