public class org.hsqldb.util.CodeSwitcher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.util.CodeSwitcher
super_class: java.lang.Object
{
private static final java.lang.String ls;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.util.ArrayList<java.lang.String> vList;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private java.util.ArrayList<java.lang.String> vSwitchOn;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private java.util.ArrayList<java.lang.String> vSwitchOff;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private java.util.ArrayList<java.lang.String> vSwitches;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private static final int MAX_LINELENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 82
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "line.separator"
1: ldc "\n"
2: invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putstatic org.hsqldb.util.CodeSwitcher.ls:Ljava/lang/String;
3: return
LocalVariableTable:
Start End Slot Name Signature
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: new org.hsqldb.util.CodeSwitcher
dup
invokespecial org.hsqldb.util.CodeSwitcher.<init>:()V
astore 1
start local 1 1: aload 0
arraylength
ifne 4
2: invokestatic org.hsqldb.util.CodeSwitcher.showUsage:()V
3: return
4: StackMap locals: org.hsqldb.util.CodeSwitcher
StackMap stack:
aconst_null
astore 2
start local 2 5: aconst_null
astore 3
start local 3 6: iconst_0
istore 4
start local 4 7: goto 23
8: StackMap locals: java.io.File java.io.File int
StackMap stack:
aload 0
iload 4
aaload
astore 5
start local 5 9: aload 5
ldc "+"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
10: aload 1
getfield org.hsqldb.util.CodeSwitcher.vSwitchOn:Ljava/util/ArrayList;
aload 5
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
11: goto 22
StackMap locals: java.lang.String
StackMap stack:
12: aload 5
ldc "--basedir="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 15
13: new java.io.File
dup
aload 5
ldc "--basedir="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
14: goto 22
StackMap locals:
StackMap stack:
15: aload 5
ldc "--pathlist="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 18
16: new java.io.File
dup
aload 5
ldc "--pathlist="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
17: goto 22
StackMap locals:
StackMap stack:
18: aload 5
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
19: aload 1
getfield org.hsqldb.util.CodeSwitcher.vSwitchOff:Ljava/util/ArrayList;
aload 5
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
20: goto 22
21: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual org.hsqldb.util.CodeSwitcher.addDir:(Ljava/lang/String;)V
end local 5 22: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
23: iload 4
aload 0
arraylength
if_icmplt 8
end local 4 24: aload 3
ifnull 36
25: aload 2
ifnonnull 30
26: getstatic java.lang.System.err:Ljava/io/PrintStream;
27: ldc "--basedir= setting ignored, since only used for list files"
28: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: goto 36
30: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.File.isDirectory:()Z
ifne 36
31: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Skipping listfile since basedir '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 3
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "' is not a directory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
35: aconst_null
astore 2
36: StackMap locals:
StackMap stack:
aload 2
ifnull 63
37: new java.io.BufferedReader
dup
new java.io.FileReader
dup
aload 2
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
38: astore 4
start local 4 39: goto 56
start local 5 40: StackMap locals: java.io.BufferedReader java.lang.String
StackMap stack:
aload 5
bipush 35
invokevirtual java.lang.String.indexOf:(I)I
istore 7
start local 7 41: iload 7
iconst_m1
if_icmple 42
aload 5
iconst_0
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 43
42: StackMap locals: java.lang.String[] org.hsqldb.util.CodeSwitcher java.io.File java.io.File java.io.BufferedReader java.lang.String top int
StackMap stack:
aload 5
StackMap locals:
StackMap stack: java.lang.String
43: invokevirtual java.lang.String.trim:()Ljava/lang/String;
44: astore 6
start local 6 45: aload 6
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpge 47
46: goto 56
47: StackMap locals: java.lang.String[] org.hsqldb.util.CodeSwitcher java.io.File java.io.File java.io.BufferedReader java.lang.String java.lang.String int
StackMap stack:
aload 3
ifnonnull 48
new java.io.File
dup
aload 6
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
goto 49
48: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 3
aload 6
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
49: StackMap locals:
StackMap stack: java.io.File
astore 8
start local 8 50: aload 8
invokevirtual java.io.File.isFile:()Z
ifeq 53
51: aload 1
aload 8
invokevirtual org.hsqldb.util.CodeSwitcher.addDir:(Ljava/io/File;)V
52: goto 56
53: StackMap locals: java.io.File
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Skipping non-file '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
54: ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
55: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 8 end local 7 end local 6 end local 5 56: StackMap locals: java.lang.String[] org.hsqldb.util.CodeSwitcher java.io.File java.io.File java.io.BufferedReader
StackMap stack:
aload 4
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 5
start local 5 57: ifnonnull 40
end local 5 end local 4 58: goto 63
StackMap locals: java.lang.String[] org.hsqldb.util.CodeSwitcher java.io.File java.io.File
StackMap stack: java.lang.Exception
59: pop
60: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Failed to read pathlist file '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
61: aload 2
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
62: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
63: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.hsqldb.util.CodeSwitcher.size:()I
iconst_1
if_icmpge 66
64: ldc "No path specified, or no specified paths qualify"
invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
65: invokestatic org.hsqldb.util.CodeSwitcher.showUsage:()V
66: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.hsqldb.util.CodeSwitcher.process:()V
67: aload 1
getfield org.hsqldb.util.CodeSwitcher.vSwitchOff:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifne 69
aload 1
getfield org.hsqldb.util.CodeSwitcher.vSwitchOn:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifne 69
68: aload 1
invokevirtual org.hsqldb.util.CodeSwitcher.printSwitches:()V
69: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 a [Ljava/lang/String;
1 70 1 s Lorg/hsqldb/util/CodeSwitcher;
5 70 2 listFile Ljava/io/File;
6 70 3 baseDir Ljava/io/File;
7 24 4 i I
9 22 5 p Ljava/lang/String;
39 58 4 br Ljava/io/BufferedReader;
40 56 5 st Ljava/lang/String;
57 58 5 st Ljava/lang/String;
45 56 6 p Ljava/lang/String;
41 56 7 hashIndex I
50 56 8 f Ljava/io/File;
Exception table:
from to target type
37 58 59 Class java.lang.Exception
MethodParameters:
Name Flags
a
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.util.CodeSwitcher.vList:Ljava/util/ArrayList;
ifnonnull 1
iconst_0
goto 2
1: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.util.CodeSwitcher.vList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
2: StackMap locals:
StackMap stack: int
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hsqldb/util/CodeSwitcher;
static void showUsage();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic java.lang.System.out:Ljava/io/PrintStream;
1: ldc "Usage: java CodeSwitcher paths|{--pathlist=listfile} [{+|-}label...] [+][-]\nIf no labels are specified then all used\nlabels in the source code are shown.\nUse +MODE to switch on the things labeld MODE\nUse -MODE to switch off the things labeld MODE\nPath: Any number of path or files may be\nspecified. Use . for the current directory\n(including sub-directories).\nExample: java CodeSwitcher +JAVA2 .\nThis example switches on code labeled JAVA2\nin all *.java files in the current directory\nand all subdirectories.\n"
2: invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hsqldb.util.CodeSwitcher.vList:Ljava/util/ArrayList;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hsqldb.util.CodeSwitcher.vSwitchOn:Ljava/util/ArrayList;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hsqldb.util.CodeSwitcher.vSwitchOff:Ljava/util/ArrayList;
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hsqldb/util/CodeSwitcher;
void process();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.util.CodeSwitcher.vList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 8
3: StackMap locals: int int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "."
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
4: aload 0
getfield org.hsqldb.util.CodeSwitcher.vList:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 5: aload 0
aload 3
invokevirtual org.hsqldb.util.CodeSwitcher.processFile:(Ljava/lang/String;)Z
ifne 7
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "in file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " !"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 3 7: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iload 1
if_icmplt 3
end local 2 9: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/hsqldb/util/CodeSwitcher;
1 11 1 len I
2 9 2 i I
5 7 3 file Ljava/lang/String;
void printSwitches();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Used labels:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: iconst_0
istore 1
start local 1 2: goto 5
3: StackMap locals: int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 3
end local 1 6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hsqldb/util/CodeSwitcher;
2 6 1 i I
void addDir(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual org.hsqldb.util.CodeSwitcher.addDir:(Ljava/io/File;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/util/CodeSwitcher;
0 2 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
void addDir(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.isFile:()Z
ifeq 3
aload 1
invokevirtual java.io.File.getName:()Ljava/lang/String;
ldc ".java"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
1: aload 0
getfield org.hsqldb.util.CodeSwitcher.vList:Ljava/util/ArrayList;
aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: goto 12
StackMap locals:
StackMap stack:
3: aload 1
invokevirtual java.io.File.isDirectory:()Z
ifeq 12
4: aload 1
invokevirtual java.io.File.listFiles:()[Ljava/io/File;
astore 2
start local 2 5: aload 2
ifnonnull 7
6: return
7: StackMap locals: java.io.File[]
StackMap stack:
iconst_0
istore 3
start local 3 8: goto 11
9: StackMap locals: int
StackMap stack:
aload 0
aload 2
iload 3
aaload
invokevirtual org.hsqldb.util.CodeSwitcher.addDir:(Ljava/io/File;)V
10: iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 2
arraylength
if_icmplt 9
end local 3 end local 2 12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hsqldb/util/CodeSwitcher;
0 13 1 f Ljava/io/File;
5 12 2 list [Ljava/io/File;
8 12 3 i I
MethodParameters:
Name Flags
f
boolean processFile(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: new java.io.File
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".new"
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
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: aload 2
invokestatic org.hsqldb.util.CodeSwitcher.getFileLines:(Ljava/io/File;)Ljava/util/ArrayList;
astore 7
start local 7 6: new java.util.ArrayList
dup
aload 7
invokevirtual java.util.ArrayList.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 8
start local 8 7: iconst_0
istore 9
start local 9 8: goto 11
9: StackMap locals: org.hsqldb.util.CodeSwitcher java.lang.String java.io.File java.io.File int int int java.util.ArrayList java.util.ArrayList int
StackMap stack:
aload 8
aload 7
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
10: iinc 9 1
StackMap locals:
StackMap stack:
11: iload 9
aload 7
invokevirtual java.util.ArrayList.size:()I
if_icmplt 9
end local 9 12: iconst_0
istore 9
start local 9 13: goto 87
14: StackMap locals:
StackMap stack:
aload 7
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 15: aload 10
ifnonnull 17
16: goto 88
17: StackMap locals: java.lang.String
StackMap stack:
iload 6
ifeq 21
18: aload 10
ldc "/*"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
aload 10
ldc "*/"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
19: StackMap locals:
StackMap stack:
aload 7
iload 9
iinc 9 -1
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
20: goto 86
21: StackMap locals:
StackMap stack:
aload 10
ldc "//#"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 86
22: aload 10
ldc "//#ifdef "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 39
23: iload 4
ifeq 26
24: ldc "'#ifdef' not allowed inside '#ifdef'"
invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
25: iconst_0
ireturn
26: StackMap locals:
StackMap stack:
iconst_1
istore 4
27: aload 10
bipush 9
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 28: aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitchOn:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iconst_m1
if_icmpeq 32
29: iconst_1
istore 6
30: iconst_0
istore 5
31: goto 36
StackMap locals: java.lang.String
StackMap stack:
32: aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitchOff:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iconst_m1
if_icmpeq 36
33: iconst_1
istore 6
34: aload 7
iinc 9 1
iload 9
ldc "/*"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
35: iconst_1
istore 5
36: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iconst_m1
if_icmpne 86
37: aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 11 38: goto 86
StackMap locals:
StackMap stack:
39: aload 10
ldc "//#ifndef "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 57
40: iload 4
ifeq 44
41: ldc "'#ifndef' not allowed inside '#ifdef'"
42: invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
43: iconst_0
ireturn
44: StackMap locals:
StackMap stack:
iconst_1
istore 4
45: aload 10
bipush 10
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 46: aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitchOff:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iconst_m1
if_icmpeq 50
47: iconst_1
istore 6
48: iconst_0
istore 5
49: goto 54
StackMap locals: java.lang.String
StackMap stack:
50: aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitchOn:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iconst_m1
if_icmpeq 54
51: iconst_1
istore 6
52: aload 7
iinc 9 1
iload 9
ldc "/*"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
53: iconst_1
istore 5
54: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iconst_m1
if_icmpne 86
55: aload 0
getfield org.hsqldb.util.CodeSwitcher.vSwitches:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 11 56: goto 86
StackMap locals:
StackMap stack:
57: aload 10
ldc "//#else"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 74
58: iload 4
iconst_1
if_icmpeq 61
59: ldc "'#else' without '#ifdef'"
invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
60: iconst_0
ireturn
61: StackMap locals:
StackMap stack:
iconst_2
istore 4
62: iload 6
ifeq 86
63: iload 5
ifeq 71
64: aload 7
iload 9
iconst_1
isub
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 68
65: aload 7
iload 9
iconst_1
isub
ldc "*/"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
66: iinc 9 1
67: goto 69
68: StackMap locals:
StackMap stack:
aload 7
iload 9
iinc 9 1
ldc "*/"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
69: StackMap locals:
StackMap stack:
iconst_0
istore 5
70: goto 86
71: StackMap locals:
StackMap stack:
aload 7
iinc 9 1
iload 9
ldc "/*"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
72: iconst_1
istore 5
73: goto 86
StackMap locals:
StackMap stack:
74: aload 10
ldc "//#endif"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 86
75: iload 4
ifne 78
76: ldc "'#endif' without '#ifdef'"
invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
77: iconst_0
ireturn
78: StackMap locals:
StackMap stack:
iconst_0
istore 4
79: iload 6
ifeq 85
iload 5
ifeq 85
80: aload 7
iload 9
iconst_1
isub
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 84
81: aload 7
iload 9
iconst_1
isub
ldc "*/"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
82: iinc 9 1
83: goto 85
84: StackMap locals:
StackMap stack:
aload 7
iload 9
iinc 9 1
ldc "*/"
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
85: StackMap locals:
StackMap stack:
iconst_0
istore 6
end local 10 86: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
87: iload 9
aload 7
invokevirtual java.util.ArrayList.size:()I
if_icmplt 14
end local 9 88: StackMap locals:
StackMap stack:
iload 4
ifeq 91
89: ldc "'#endif' missing"
invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
90: iconst_0
ireturn
91: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 92: iconst_0
istore 10
start local 10 93: goto 98
94: StackMap locals: int int
StackMap stack:
aload 8
iload 10
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
aload 7
iload 10
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 97
95: iconst_1
istore 9
96: goto 99
97: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
98: iload 10
aload 7
invokevirtual java.util.ArrayList.size:()I
if_icmplt 94
end local 10 99: StackMap locals:
StackMap stack:
iload 9
ifne 101
100: iconst_1
ireturn
101: StackMap locals:
StackMap stack:
aload 7
aload 3
invokestatic org.hsqldb.util.CodeSwitcher.writeFileLines:(Ljava/util/ArrayList;Ljava/io/File;)V
102: new java.io.File
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".bak"
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
astore 10
start local 10 103: aload 10
invokevirtual java.io.File.delete:()Z
pop
104: aload 2
aload 10
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
pop
105: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 11
start local 11 106: aload 3
aload 11
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
pop
107: aload 10
invokevirtual java.io.File.delete:()Z
pop
108: iconst_1
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 109: StackMap locals: org.hsqldb.util.CodeSwitcher java.lang.String java.io.File java.io.File int int int
StackMap stack: java.lang.Exception
astore 7
start local 7 110: aload 7
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokestatic org.hsqldb.util.CodeSwitcher.printError:(Ljava/lang/String;)V
111: iconst_0
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 112 0 this Lorg/hsqldb/util/CodeSwitcher;
0 112 1 name Ljava/lang/String;
1 112 2 f Ljava/io/File;
2 112 3 fnew Ljava/io/File;
3 112 4 state I
4 112 5 switchoff Z
5 112 6 working Z
6 109 7 v Ljava/util/ArrayList<Ljava/lang/String;>;
7 109 8 v1 Ljava/util/ArrayList<Ljava/lang/String;>;
8 12 9 i I
13 88 9 i I
15 86 10 line Ljava/lang/String;
28 38 11 s Ljava/lang/String;
46 56 11 s Ljava/lang/String;
92 109 9 filechanged Z
93 99 10 i I
103 109 10 fbak Ljava/io/File;
106 109 11 fcopy Ljava/io/File;
110 112 7 e Ljava/lang/Exception;
Exception table:
from to target type
5 25 109 Class java.lang.Exception
26 43 109 Class java.lang.Exception
44 60 109 Class java.lang.Exception
61 77 109 Class java.lang.Exception
78 90 109 Class java.lang.Exception
91 100 109 Class java.lang.Exception
101 108 109 Class java.lang.Exception
MethodParameters:
Name Flags
name
static java.util.ArrayList<java.lang.String> getFileLines(java.io.File);
descriptor: (Ljava/io/File;)Ljava/util/ArrayList;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: new java.io.LineNumberReader
dup
new java.io.FileReader
dup
aload 0
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
invokespecial java.io.LineNumberReader.<init>:(Ljava/io/Reader;)V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: StackMap locals: java.io.LineNumberReader java.util.ArrayList
StackMap stack:
aload 1
invokevirtual java.io.LineNumberReader.readLine:()Ljava/lang/String;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: goto 7
5: StackMap locals: java.lang.String
StackMap stack:
aload 2
aload 3
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 3 6: goto 2
7: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.LineNumberReader.close:()V
8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 f Ljava/io/File;
1 9 1 read Ljava/io/LineNumberReader;
2 9 2 v Ljava/util/ArrayList<Ljava/lang/String;>;
3 6 3 line Ljava/lang/String;
Exceptions:
throws java.io.IOException
Signature: (Ljava/io/File;)Ljava/util/ArrayList<Ljava/lang/String;>;
MethodParameters:
Name Flags
f
static void writeFileLines(java.util.ArrayList, java.io.File);
descriptor: (Ljava/util/ArrayList;Ljava/io/File;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new java.io.FileWriter
dup
aload 1
invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 6
3: StackMap locals: java.io.FileWriter int
StackMap stack:
aload 2
aload 0
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
4: aload 2
getstatic org.hsqldb.util.CodeSwitcher.ls:Ljava/lang/String;
invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 0
invokevirtual java.util.ArrayList.size:()I
if_icmplt 3
end local 3 7: aload 2
invokevirtual java.io.FileWriter.flush:()V
8: aload 2
invokevirtual java.io.FileWriter.close:()V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 v Ljava/util/ArrayList;
0 10 1 f Ljava/io/File;
1 10 2 write Ljava/io/FileWriter;
2 7 3 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
v
f
static void printError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ERROR: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 error Ljava/lang/String;
MethodParameters:
Name Flags
error
}
SourceFile: "CodeSwitcher.java"