class sun.font.SunFontManager$2 implements java.security.PrivilegedAction<java.lang.Void>
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 309
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.Void run();
descriptor: ()Ljava/lang/Void;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 // sun.font.SunFontManager$2 this
0: .line 312
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;
ldc "badfonts.txt"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
1: .line 311
astore 1 /* badFontFile */
start local 1 // java.io.File badFontFile
2: .line 313
aload 1 /* badFontFile */
invokevirtual java.io.File.exists:()Z
ifeq 26
3: .line 314
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;
4: .line 315
aconst_null
astore 2
aconst_null
astore 3
5: new java.io.FileInputStream
dup
aload 1 /* badFontFile */
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 4 /* fis */
start local 4 // java.io.FileInputStream fis
6: .line 316
new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 4 /* fis */
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 5 /* br */
start local 5 // java.io.BufferedReader br
7: .line 318
StackMap locals: sun.font.SunFontManager$2 java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream java.io.BufferedReader
StackMap stack:
aload 5 /* br */
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 6 /* name */
start local 6 // java.lang.String name
8: .line 319
aload 6 /* name */
ifnonnull 10
9: .line 320
goto 14
10: .line 322
StackMap locals: java.lang.String
StackMap stack:
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 12
11: .line 323
new java.lang.StringBuilder
dup
ldc "read bad font: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6 /* name */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.font.FontUtilities.logWarning:(Ljava/lang/String;)V
12: .line 325
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 6 /* name */
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 // java.lang.String name
13: .line 317
goto 7
14: .line 328
StackMap locals:
StackMap stack:
aload 5 /* br */
ifnull 17
aload 5 /* br */
invokevirtual java.io.BufferedReader.close:()V
goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 2
aload 5 /* br */
ifnull 16
aload 5 /* br */
invokevirtual java.io.BufferedReader.close:()V
end local 5 // java.io.BufferedReader br
StackMap locals:
StackMap stack:
16: aload 2
athrow
StackMap locals:
StackMap stack:
17: aload 4 /* fis */
ifnull 26
aload 4 /* fis */
invokevirtual java.io.FileInputStream.close:()V
goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 3
aload 2
ifnonnull 19
aload 3
astore 2
goto 20
StackMap locals:
StackMap stack:
19: aload 2
aload 3
if_acmpeq 20
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 4 /* fis */
ifnull 21
aload 4 /* fis */
invokevirtual java.io.FileInputStream.close:()V
end local 4 // java.io.FileInputStream fis
StackMap locals:
StackMap stack:
21: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 3
aload 2
ifnonnull 23
aload 3
astore 2
goto 24
StackMap locals:
StackMap stack:
23: aload 2
aload 3
if_acmpeq 24
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
24: aload 2
athrow
StackMap locals: sun.font.SunFontManager$2 java.io.File
StackMap stack: java.io.IOException
25: pop
26: .line 342
StackMap locals:
StackMap stack:
getstatic sun.font.FontUtilities.isLinux:Z
ifeq 28
27: .line 344
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
28: .line 346
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
29: .line 347
iconst_1
iconst_0
30: .line 346
invokevirtual sun.font.SunFontManager.registerFontsInDir:(Ljava/lang/String;ZIZZ)V
31: .line 352
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;
32: .line 354
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
33: .line 355
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;
34: .line 356
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
getfield sun.font.SunFontManager.defaultFontName:Ljava/lang/String;
ifnonnull 36
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 36
35: .line 357
ldc "defaultFontName is null"
invokestatic sun.font.FontUtilities.logWarning:(Ljava/lang/String;)V
36: .line 359
StackMap locals: java.lang.String[]
StackMap stack:
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;
37: .line 361
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
38: .line 389
iconst_0
istore 4 /* prependToPath */
start local 4 // boolean prependToPath
39: .line 390
iconst_0
istore 5 /* appendToPath */
start local 5 // boolean appendToPath
40: .line 391
ldc "sun.java2d.fontpath"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 6 /* dbgFontPath */
start local 6 // java.lang.String dbgFontPath
41: .line 393
aload 6 /* dbgFontPath */
ifnull 51
42: .line 394
aload 6 /* dbgFontPath */
ldc "prepend:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 47
43: .line 395
iconst_1
istore 4 /* prependToPath */
44: .line 397
aload 6 /* dbgFontPath */
ldc "prepend:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
45: .line 396
astore 6 /* dbgFontPath */
46: .line 398
goto 51
StackMap locals: sun.font.SunFontManager$2 java.io.File java.lang.String[] java.lang.String int int java.lang.String
StackMap stack:
47: aload 6 /* dbgFontPath */
ldc "append:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 51
48: .line 399
iconst_1
istore 5 /* appendToPath */
49: .line 401
aload 6 /* dbgFontPath */
ldc "append:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
50: .line 400
astore 6 /* dbgFontPath */
51: .line 405
StackMap locals:
StackMap stack:
invokestatic sun.font.FontUtilities.debugFonts:()Z
ifeq 55
52: .line 406
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;
invokestatic sun.font.FontUtilities.logInfo:(Ljava/lang/String;)V
53: .line 407
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;
invokestatic sun.font.FontUtilities.logInfo:(Ljava/lang/String;)V
54: .line 408
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;
invokestatic sun.font.FontUtilities.logInfo:(Ljava/lang/String;)V
55: .line 411
StackMap locals:
StackMap stack:
aload 6 /* dbgFontPath */
ifnull 68
56: .line 415
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;
57: .line 417
aload 3 /* extraFontPath */
ifnull 59
58: .line 418
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
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;
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
59: .line 420
StackMap locals:
StackMap stack:
iload 5 /* appendToPath */
ifeq 62
60: .line 421
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
dup
getfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
new java.lang.StringBuilder
dup_x1
swap
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;
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
61: .line 422
goto 66
StackMap locals:
StackMap stack:
62: iload 4 /* prependToPath */
ifeq 65
63: .line 423
aload 0 /* this */
getfield sun.font.SunFontManager$2.this$0:Lsun/font/SunFontManager;
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;
putfield sun.font.SunFontManager.fontPath:Ljava/lang/String;
64: .line 424
goto 66
65: .line 425
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;
66: .line 427
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
67: .line 428
goto 70
StackMap locals:
StackMap stack:
68: aload 3 /* extraFontPath */
ifnull 70
69: .line 442
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
70: .line 445
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
71: .line 447
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 72 0 this Lsun/font/SunFontManager$2;
2 72 1 badFontFile Ljava/io/File;
6 21 4 fis Ljava/io/FileInputStream;
7 16 5 br Ljava/io/BufferedReader;
8 13 6 name Ljava/lang/String;
33 72 2 fontInfo [Ljava/lang/String;
38 72 3 extraFontPath Ljava/lang/String;
39 72 4 prependToPath Z
40 72 5 appendToPath Z
41 72 6 dbgFontPath Ljava/lang/String;
Exception table:
from to target type
7 14 15 any
6 17 18 any
5 22 22 any
4 25 25 Class java.io.IOException
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: .line 1
aload 0
invokevirtual sun.font.SunFontManager$2.run:()Ljava/lang/Void;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/security/PrivilegedAction<Ljava/lang/Void;>;
SourceFile: "SunFontManager.java"
EnclosingMethod: sun.font.SunFontManager.<init>:()V
NestHost: sun.font.SunFontManager
InnerClasses:
sun.font.SunFontManager$2