public class sun.tools.tree.SwitchStatement extends sun.tools.tree.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.tree.SwitchStatement
super_class: sun.tools.tree.Statement
{
sun.tools.tree.Expression expr;
descriptor: Lsun/tools/tree/Expression;
flags: (0x0000)
sun.tools.tree.Statement[] args;
descriptor: [Lsun/tools/tree/Statement;
flags: (0x0000)
public void <init>(long, sun.tools.tree.Expression, sun.tools.tree.Statement[]);
descriptor: (JLsun/tools/tree/Expression;[Lsun/tools/tree/Statement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
bipush 95
lload 1
invokespecial sun.tools.tree.Statement.<init>:(IJ)V
1: aload 0
aload 3
putfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
2: aload 0
aload 4
putfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
3: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/tree/SwitchStatement;
0 4 1 where J
0 4 3 expr Lsun/tools/tree/Expression;
0 4 4 args [Lsun/tools/tree/Statement;
MethodParameters:
Name Flags
where
expr
args
sun.tools.tree.Vset check(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.tree.Vset, java.util.Hashtable<java.lang.Object, java.lang.Object>);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
flags: (0x0000)
Code:
stack=6, locals=16, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokevirtual sun.tools.tree.SwitchStatement.checkLabel:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)V
1: new sun.tools.tree.CheckContext
dup
aload 2
aload 0
invokespecial sun.tools.tree.CheckContext.<init>:(Lsun/tools/tree/Context;Lsun/tools/tree/Statement;)V
astore 5
start local 5 2: aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 5
aload 0
aload 1
aload 3
invokevirtual sun.tools.tree.SwitchStatement.reach:(Lsun/tools/java/Environment;Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
aload 4
invokevirtual sun.tools.tree.Expression.checkValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
astore 3
3: aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
astore 6
start local 6 4: aload 0
aload 0
aload 1
aload 5
getstatic sun.tools.java.Type.tInt:Lsun/tools/java/Type;
aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
invokevirtual sun.tools.tree.SwitchStatement.convert:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/java/Type;Lsun/tools/tree/Expression;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
5: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
astore 7
start local 7 6: iconst_0
istore 8
start local 8 7: getstatic sun.tools.tree.SwitchStatement.DEAD_END:Lsun/tools/tree/Vset;
astore 9
start local 9 8: iconst_0
istore 10
start local 10 9: goto 52
10: StackMap locals: sun.tools.tree.SwitchStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.tree.Vset java.util.Hashtable sun.tools.tree.CheckContext sun.tools.java.Type java.util.Hashtable int sun.tools.tree.Vset int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 10
aaload
astore 11
start local 11 11: aload 11
getfield sun.tools.tree.Statement.op:I
bipush 96
if_icmpne 50
12: aload 11
aload 1
aload 5
aload 9
aload 3
invokevirtual sun.tools.tree.Vset.copy:()Lsun/tools/tree/Vset;
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
aload 4
invokevirtual sun.tools.tree.Statement.check:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
astore 9
13: aload 11
checkcast sun.tools.tree.CaseStatement
getfield sun.tools.tree.CaseStatement.expr:Lsun/tools/tree/Expression;
astore 12
start local 12 14: aload 12
ifnull 46
15: aload 12
instanceof sun.tools.tree.IntegerExpression
ifeq 42
16: aload 12
checkcast sun.tools.tree.IntegerExpression
invokevirtual sun.tools.tree.IntegerExpression.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
17: astore 13
start local 13 18: aload 13
invokevirtual java.lang.Integer.intValue:()I
istore 14
start local 14 19: aload 7
aload 12
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 22
20: aload 1
aload 11
getfield sun.tools.tree.Statement.where:J
ldc "duplicate.label"
aload 13
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
21: goto 51
22: StackMap locals: sun.tools.tree.SwitchStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.tree.Vset java.util.Hashtable sun.tools.tree.CheckContext sun.tools.java.Type java.util.Hashtable int sun.tools.tree.Vset int sun.tools.tree.Statement sun.tools.tree.Expression java.lang.Integer int
StackMap stack:
aload 7
aload 12
aload 11
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: aload 6
invokevirtual sun.tools.java.Type.getTypeCode:()I
tableswitch { // 1 - 3
1: 24
2: 32
3: 28
default: 36
}
24: StackMap locals:
StackMap stack:
iload 14
iload 14
i2b
if_icmpeq 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 15
start local 15 27: goto 37
end local 15 28: StackMap locals:
StackMap stack:
iload 14
iload 14
i2s
if_icmpeq 29
iconst_1
goto 30
StackMap locals:
StackMap stack:
29: iconst_0
StackMap locals:
StackMap stack: int
30: istore 15
start local 15 31: goto 37
end local 15 32: StackMap locals:
StackMap stack:
iload 14
iload 14
i2c
if_icmpeq 33
iconst_1
goto 34
StackMap locals:
StackMap stack:
33: iconst_0
StackMap locals:
StackMap stack: int
34: istore 15
start local 15 35: goto 37
end local 15 36: StackMap locals:
StackMap stack:
iconst_0
istore 15
start local 15 37: StackMap locals: int
StackMap stack:
iload 15
ifeq 51
38: aload 1
aload 11
getfield sun.tools.tree.Statement.where:J
ldc "switch.overflow"
39: aload 13
aload 6
40: invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 15 end local 14 end local 13 41: goto 51
42: StackMap locals:
StackMap stack:
aload 12
invokevirtual sun.tools.tree.Expression.isConstant:()Z
ifeq 44
43: aload 12
invokevirtual sun.tools.tree.Expression.getType:()Lsun/tools/java/Type;
getstatic sun.tools.java.Type.tInt:Lsun/tools/java/Type;
if_acmpeq 51
44: StackMap locals:
StackMap stack:
aload 1
aload 11
getfield sun.tools.tree.Statement.where:J
ldc "const.expr.required"
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;)V
45: goto 51
46: StackMap locals:
StackMap stack:
iload 8
ifeq 48
47: aload 1
aload 11
getfield sun.tools.tree.Statement.where:J
ldc "duplicate.default"
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;)V
48: StackMap locals:
StackMap stack:
iconst_1
istore 8
end local 12 49: goto 51
50: StackMap locals:
StackMap stack:
aload 11
aload 1
aload 5
aload 9
aload 4
invokevirtual sun.tools.tree.Statement.checkBlockStatement:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
astore 9
end local 11 51: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
52: iload 10
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmplt 10
end local 10 53: aload 9
invokevirtual sun.tools.tree.Vset.isDeadEnd:()Z
ifne 55
54: aload 5
aload 5
getfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
aload 9
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
putfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
55: StackMap locals:
StackMap stack:
iload 8
ifeq 57
56: aload 5
getfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
astore 3
57: StackMap locals:
StackMap stack:
aload 2
aload 3
invokevirtual sun.tools.tree.Context.removeAdditionalVars:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
areturn
end local 9 end local 8 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 58 0 this Lsun/tools/tree/SwitchStatement;
0 58 1 env Lsun/tools/java/Environment;
0 58 2 ctx Lsun/tools/tree/Context;
0 58 3 vset Lsun/tools/tree/Vset;
0 58 4 exp Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;
2 58 5 newctx Lsun/tools/tree/CheckContext;
4 58 6 switchType Lsun/tools/java/Type;
6 58 7 tab Ljava/util/Hashtable<Lsun/tools/tree/Expression;Lsun/tools/tree/Statement;>;
7 58 8 hasDefault Z
8 58 9 vs Lsun/tools/tree/Vset;
9 53 10 i I
11 51 11 s Lsun/tools/tree/Statement;
14 49 12 lbl Lsun/tools/tree/Expression;
18 41 13 Ivalue Ljava/lang/Integer;
19 41 14 ivalue I
27 28 15 overflow Z
31 32 15 overflow Z
35 36 15 overflow Z
37 41 15 overflow Z
Signature: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;)Lsun/tools/tree/Vset;
MethodParameters:
Name Flags
env
ctx
vset
exp
public sun.tools.tree.Statement inline(sun.tools.java.Environment, sun.tools.tree.Context);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.tools.tree.Context
dup
aload 2
aload 0
invokespecial sun.tools.tree.Context.<init>:(Lsun/tools/tree/Context;Lsun/tools/tree/Node;)V
astore 2
1: aload 0
aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
invokevirtual sun.tools.tree.Expression.inlineValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
2: iconst_0
istore 3
start local 3 3: goto 7
4: StackMap locals: int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 3
aaload
ifnull 6
5: aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 3
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 3
aaload
aload 1
aload 2
invokevirtual sun.tools.tree.Statement.inline:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
aastore
6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmplt 4
end local 3 8: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/tools/tree/SwitchStatement;
0 9 1 env Lsun/tools/java/Environment;
0 9 2 ctx Lsun/tools/tree/Context;
3 8 3 i I
MethodParameters:
Name Flags
env
ctx
public sun.tools.tree.Statement copyInline(sun.tools.tree.Context, boolean);
descriptor: (Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.tools.tree.SwitchStatement.clone:()Ljava/lang/Object;
checkcast sun.tools.tree.SwitchStatement
astore 3
start local 3 1: aload 3
aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.copyInline:(Lsun/tools/tree/Context;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
2: aload 3
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
anewarray sun.tools.tree.Statement
putfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
3: iconst_0
istore 4
start local 4 4: goto 8
5: StackMap locals: sun.tools.tree.SwitchStatement int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 4
aaload
ifnull 7
6: aload 3
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 4
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 4
aaload
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.copyInline:(Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
aastore
7: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmplt 5
end local 4 9: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/tree/SwitchStatement;
0 10 1 ctx Lsun/tools/tree/Context;
0 10 2 valNeeded Z
1 10 3 s Lsun/tools/tree/SwitchStatement;
4 9 4 i I
MethodParameters:
Name Flags
ctx
valNeeded
public int costInline(int, sun.tools.java.Environment, sun.tools.tree.Context);
descriptor: (ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Expression.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 6
3: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 5
aaload
ifnull 5
4: iload 4
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 5
aaload
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Statement.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
iadd
istore 4
5: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmpge 7
iload 4
iload 1
if_icmplt 3
end local 5 7: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/tree/SwitchStatement;
0 8 1 thresh I
0 8 2 env Lsun/tools/java/Environment;
0 8 3 ctx Lsun/tools/tree/Context;
1 8 4 cost I
2 7 5 i I
MethodParameters:
Name Flags
thresh
env
ctx
public void code(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.asm.Assembler);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.tools.tree.CodeContext
dup
aload 2
aload 0
invokespecial sun.tools.tree.CodeContext.<init>:(Lsun/tools/tree/Context;Lsun/tools/tree/Node;)V
astore 4
start local 4 1: aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 4
aload 3
invokevirtual sun.tools.tree.Expression.codeValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
2: new sun.tools.asm.SwitchData
dup
invokespecial sun.tools.asm.SwitchData.<init>:()V
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 14
6: StackMap locals: sun.tools.tree.SwitchStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.asm.Assembler sun.tools.tree.CodeContext sun.tools.asm.SwitchData int int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 7
aaload
astore 8
start local 8 7: aload 8
ifnull 13
aload 8
getfield sun.tools.tree.Statement.op:I
bipush 96
if_icmpne 13
8: aload 8
checkcast sun.tools.tree.CaseStatement
getfield sun.tools.tree.CaseStatement.expr:Lsun/tools/tree/Expression;
astore 9
start local 9 9: aload 9
ifnull 12
10: aload 5
aload 9
checkcast sun.tools.tree.IntegerExpression
getfield sun.tools.tree.IntegerExpression.value:I
new sun.tools.asm.Label
dup
invokespecial sun.tools.asm.Label.<init>:()V
invokevirtual sun.tools.asm.SwitchData.add:(ILsun/tools/asm/Label;)V
11: goto 13
12: StackMap locals: sun.tools.tree.Statement sun.tools.tree.Expression
StackMap stack:
iconst_1
istore 6
end local 9 end local 8 13: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmplt 6
end local 7 15: aload 1
invokevirtual sun.tools.java.Environment.coverage:()Z
ifeq 17
16: aload 5
invokevirtual sun.tools.asm.SwitchData.initTableCase:()V
17: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield sun.tools.tree.SwitchStatement.where:J
sipush 170
aload 5
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
18: iconst_0
istore 7
start local 7 19: goto 33
20: StackMap locals: int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 7
aaload
astore 8
start local 8 21: aload 8
ifnull 32
22: aload 8
getfield sun.tools.tree.Statement.op:I
bipush 96
if_icmpne 31
23: aload 8
checkcast sun.tools.tree.CaseStatement
getfield sun.tools.tree.CaseStatement.expr:Lsun/tools/tree/Expression;
astore 9
start local 9 24: aload 9
ifnull 28
25: aload 3
aload 5
aload 9
checkcast sun.tools.tree.IntegerExpression
getfield sun.tools.tree.IntegerExpression.value:I
invokevirtual sun.tools.asm.SwitchData.get:(I)Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
26: aload 5
aload 9
checkcast sun.tools.tree.IntegerExpression
getfield sun.tools.tree.IntegerExpression.value:I
aload 8
getfield sun.tools.tree.Statement.where:J
invokevirtual sun.tools.asm.SwitchData.addTableCase:(IJ)V
27: goto 32
28: StackMap locals: sun.tools.tree.Statement sun.tools.tree.Expression
StackMap stack:
aload 3
aload 5
invokevirtual sun.tools.asm.SwitchData.getDefaultLabel:()Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
29: aload 5
aload 8
getfield sun.tools.tree.Statement.where:J
invokevirtual sun.tools.asm.SwitchData.addTableDefault:(J)V
end local 9 30: goto 32
31: StackMap locals:
StackMap stack:
aload 8
aload 1
aload 4
aload 3
invokevirtual sun.tools.tree.Statement.code:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
end local 8 32: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
33: iload 7
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmplt 20
end local 7 34: iload 6
ifne 36
35: aload 3
aload 5
invokevirtual sun.tools.asm.SwitchData.getDefaultLabel:()Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
36: StackMap locals:
StackMap stack:
aload 3
aload 4
getfield sun.tools.tree.CodeContext.breakLabel:Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
37: return
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 38 0 this Lsun/tools/tree/SwitchStatement;
0 38 1 env Lsun/tools/java/Environment;
0 38 2 ctx Lsun/tools/tree/Context;
0 38 3 asm Lsun/tools/asm/Assembler;
1 38 4 newctx Lsun/tools/tree/CodeContext;
3 38 5 sw Lsun/tools/asm/SwitchData;
4 38 6 hasDefault Z
5 15 7 i I
7 13 8 s Lsun/tools/tree/Statement;
9 13 9 e Lsun/tools/tree/Expression;
19 34 7 i I
21 32 8 s Lsun/tools/tree/Statement;
24 30 9 e Lsun/tools/tree/Expression;
MethodParameters:
Name Flags
env
ctx
asm
public void print(java.io.PrintStream, int);
descriptor: (Ljava/io/PrintStream;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokespecial sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
1: aload 1
ldc "switch ("
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: aload 0
getfield sun.tools.tree.SwitchStatement.expr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.print:(Ljava/io/PrintStream;)V
3: aload 1
ldc ") {\n"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
4: iconst_0
istore 3
start local 3 5: goto 11
6: StackMap locals: int
StackMap stack:
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 3
aaload
ifnull 10
7: aload 0
aload 1
iload 2
iconst_1
iadd
invokevirtual sun.tools.tree.SwitchStatement.printIndent:(Ljava/io/PrintStream;I)V
8: aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
iload 3
aaload
aload 1
iload 2
iconst_1
iadd
invokevirtual sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
9: aload 1
ldc "\n"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 0
getfield sun.tools.tree.SwitchStatement.args:[Lsun/tools/tree/Statement;
arraylength
if_icmplt 6
end local 3 12: aload 0
aload 1
iload 2
invokevirtual sun.tools.tree.SwitchStatement.printIndent:(Ljava/io/PrintStream;I)V
13: aload 1
ldc "}"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/tools/tree/SwitchStatement;
0 15 1 out Ljava/io/PrintStream;
0 15 2 indent I
5 12 3 i I
MethodParameters:
Name Flags
out
indent
}
SourceFile: "SwitchStatement.java"