public class sun.tools.tree.FinallyStatement extends sun.tools.tree.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.tree.FinallyStatement
super_class: sun.tools.tree.Statement
{
sun.tools.tree.Statement body;
descriptor: Lsun/tools/tree/Statement;
flags: (0x0000)
sun.tools.tree.Statement finalbody;
descriptor: Lsun/tools/tree/Statement;
flags: (0x0000)
boolean finallyCanFinish;
descriptor: Z
flags: (0x0000)
boolean needReturnSlot;
descriptor: Z
flags: (0x0000)
sun.tools.tree.Statement init;
descriptor: Lsun/tools/tree/Statement;
flags: (0x0000)
sun.tools.tree.LocalMember tryTemp;
descriptor: Lsun/tools/tree/LocalMember;
flags: (0x0000)
public void <init>(long, sun.tools.tree.Statement, sun.tools.tree.Statement);
descriptor: (JLsun/tools/tree/Statement;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 103
lload 1
invokespecial sun.tools.tree.Statement.<init>:(IJ)V
1: aload 0
aload 3
putfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
2: aload 0
aload 4
putfield sun.tools.tree.FinallyStatement.finalbody: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/FinallyStatement;
0 4 1 where J
0 4 3 body Lsun/tools/tree/Statement;
0 4 4 finalbody Lsun/tools/tree/Statement;
MethodParameters:
Name Flags
where
body
finalbody
sun.tools.tree.Vset check(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.tree.Vset, java.util.Hashtable);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
flags: (0x0000)
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 3
invokevirtual sun.tools.tree.FinallyStatement.reach:(Lsun/tools/java/Environment;Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
astore 3
1: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
astore 5
start local 5 2: 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 6
start local 6 3: aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
aload 1
aload 6
aload 3
invokevirtual sun.tools.tree.Vset.copy:()Lsun/tools/tree/Vset;
aload 5
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;
4: aload 6
getfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
5: astore 7
start local 7 6: 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 8
start local 8 7: aload 8
aconst_null
putfield sun.tools.tree.CheckContext.vsContinue:Lsun/tools/tree/Vset;
8: aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
aload 1
aload 8
aload 3
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
start local 9 9: aload 0
aload 9
invokevirtual sun.tools.tree.Vset.isDeadEnd:()Z
ifeq 10
iconst_0
goto 11
StackMap locals: sun.tools.tree.FinallyStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.tree.Vset java.util.Hashtable java.util.Hashtable sun.tools.tree.CheckContext sun.tools.tree.Vset sun.tools.tree.CheckContext sun.tools.tree.Vset
StackMap stack: sun.tools.tree.FinallyStatement
10: iconst_1
StackMap locals: sun.tools.tree.FinallyStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.tree.Vset java.util.Hashtable java.util.Hashtable sun.tools.tree.CheckContext sun.tools.tree.Vset sun.tools.tree.CheckContext sun.tools.tree.Vset
StackMap stack: sun.tools.tree.FinallyStatement int
11: putfield sun.tools.tree.FinallyStatement.finallyCanFinish:Z
12: aload 9
aload 8
getfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
astore 9
13: aload 0
getfield sun.tools.tree.FinallyStatement.finallyCanFinish:Z
ifeq 19
14: aload 5
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 10
start local 10 15: goto 18
16: StackMap locals: java.util.Enumeration
StackMap stack:
aload 10
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
astore 11
start local 11 17: aload 4
aload 11
aload 5
aload 11
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 18: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 16
end local 10 19: StackMap locals:
StackMap stack:
aload 2
aload 7
aload 9
invokevirtual sun.tools.tree.Vset.addDAandJoinDU:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
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 20 0 this Lsun/tools/tree/FinallyStatement;
0 20 1 env Lsun/tools/java/Environment;
0 20 2 ctx Lsun/tools/tree/Context;
0 20 3 vset Lsun/tools/tree/Vset;
0 20 4 exp Ljava/util/Hashtable;
2 20 5 newexp Ljava/util/Hashtable;
3 20 6 newctx1 Lsun/tools/tree/CheckContext;
6 20 7 vset1 Lsun/tools/tree/Vset;
7 20 8 newctx2 Lsun/tools/tree/CheckContext;
9 20 9 vset2 Lsun/tools/tree/Vset;
15 19 10 e Ljava/util/Enumeration;
17 18 11 def Ljava/lang/Object;
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=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
ifnull 3
1: 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
2: aload 2
aload 1
aload 0
getfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
invokevirtual sun.tools.tree.Context.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
pop
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
ifnull 5
4: aload 0
aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
aload 1
aload 2
invokevirtual sun.tools.tree.Statement.inline:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
putfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
ifnull 7
6: aload 0
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
aload 1
aload 2
invokevirtual sun.tools.tree.Statement.inline:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
putfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
ifnull 9
8: aload 0
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
aload 1
aload 2
invokevirtual sun.tools.tree.Statement.inline:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
putfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
ifnonnull 11
10: aload 0
aload 1
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
invokevirtual sun.tools.tree.FinallyStatement.eliminate:(Lsun/tools/java/Environment;Lsun/tools/tree/Statement;)Lsun/tools/tree/Statement;
areturn
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
ifnonnull 13
12: aload 0
aload 1
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
invokevirtual sun.tools.tree.FinallyStatement.eliminate:(Lsun/tools/java/Environment;Lsun/tools/tree/Statement;)Lsun/tools/tree/Statement;
areturn
13: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/tree/FinallyStatement;
0 14 1 env Lsun/tools/java/Environment;
0 14 2 ctx Lsun/tools/tree/Context;
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=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.tools.tree.FinallyStatement.clone:()Ljava/lang/Object;
checkcast sun.tools.tree.FinallyStatement
astore 3
start local 3 1: aload 0
getfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
ifnull 3
2: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
aload 1
invokevirtual sun.tools.tree.LocalMember.copyInline:(Lsun/tools/tree/Context;)Lsun/tools/tree/LocalMember;
putfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
3: StackMap locals: sun.tools.tree.FinallyStatement
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
ifnull 5
4: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.copyInline:(Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
putfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
ifnull 7
6: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.copyInline:(Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
putfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
ifnull 9
8: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.copyInline:(Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
putfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
9: StackMap locals:
StackMap stack:
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/FinallyStatement;
0 10 1 ctx Lsun/tools/tree/Context;
0 10 2 valNeeded Z
1 10 3 s Lsun/tools/tree/FinallyStatement;
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=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_4
istore 4
start local 4 1: aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
ifnull 4
2: iload 4
aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Statement.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
iadd
istore 4
3: iload 4
iload 1
if_icmplt 4
iload 4
ireturn
4: StackMap locals: int
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
ifnull 7
5: iload 4
aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Statement.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
iadd
istore 4
6: iload 4
iload 1
if_icmplt 7
iload 4
ireturn
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
ifnull 9
8: iload 4
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Statement.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
iadd
istore 4
9: 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 10 0 this Lsun/tools/tree/FinallyStatement;
0 10 1 thresh I
0 10 2 env Lsun/tools/java/Environment;
0 10 3 ctx Lsun/tools/tree/Context;
1 10 4 cost 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=8, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.tools.tree.Context
dup
aload 2
invokespecial sun.tools.tree.Context.<init>:(Lsun/tools/tree/Context;)V
astore 2
1: aconst_null
astore 4
start local 4 2: aconst_null
astore 5
start local 5 3: new sun.tools.asm.Label
dup
invokespecial sun.tools.asm.Label.<init>:()V
astore 6
start local 6 4: aload 0
getfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
ifnull 6
5: aload 2
aload 1
aload 0
getfield sun.tools.tree.FinallyStatement.tryTemp:Lsun/tools/tree/LocalMember;
invokevirtual sun.tools.tree.Context.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
pop
6: StackMap locals: java.lang.Integer java.lang.Integer sun.tools.asm.Label
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
ifnull 9
7: 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 7
start local 7 8: aload 0
getfield sun.tools.tree.FinallyStatement.init:Lsun/tools/tree/Statement;
aload 1
aload 7
aload 3
invokevirtual sun.tools.tree.Statement.code:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
end local 7 9: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.finallyCanFinish:Z
ifeq 23
10: aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.getClassDefinition:()Lsun/tools/java/ClassDefinition;
astore 9
start local 9 11: aload 0
getfield sun.tools.tree.FinallyStatement.needReturnSlot:Z
ifeq 19
12: aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.getType:()Lsun/tools/java/Type;
invokevirtual sun.tools.java.Type.getReturnType:()Lsun/tools/java/Type;
astore 10
start local 10 13: new sun.tools.tree.LocalMember
dup
lconst_0
aload 9
iconst_0
14: aload 10
15: getstatic sun.tools.tree.FinallyStatement.idFinallyReturnValue:Lsun/tools/java/Identifier;
16: invokespecial sun.tools.tree.LocalMember.<init>:(JLsun/tools/java/ClassDefinition;ILsun/tools/java/Type;Lsun/tools/java/Identifier;)V
astore 11
start local 11 17: aload 2
aload 1
aload 11
invokevirtual sun.tools.tree.Context.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
pop
18: new java.lang.StringBuilder
dup
ldc "Assigning return slot to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
getfield sun.tools.tree.LocalMember.number:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.tools.java.Environment.debugOutput:(Ljava/lang/Object;)V
end local 11 end local 10 19: StackMap locals: sun.tools.tree.FinallyStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.asm.Assembler java.lang.Integer java.lang.Integer sun.tools.asm.Label top top sun.tools.java.ClassDefinition
StackMap stack:
new sun.tools.tree.LocalMember
dup
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
aload 9
iconst_0
getstatic sun.tools.java.Type.tObject:Lsun/tools/java/Type;
aconst_null
invokespecial sun.tools.tree.LocalMember.<init>:(JLsun/tools/java/ClassDefinition;ILsun/tools/java/Type;Lsun/tools/java/Identifier;)V
astore 7
start local 7 20: new sun.tools.tree.LocalMember
dup
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
aload 9
iconst_0
getstatic sun.tools.java.Type.tInt:Lsun/tools/java/Type;
aconst_null
invokespecial sun.tools.tree.LocalMember.<init>:(JLsun/tools/java/ClassDefinition;ILsun/tools/java/Type;Lsun/tools/java/Identifier;)V
astore 8
start local 8 21: new java.lang.Integer
dup
aload 2
aload 1
aload 7
invokevirtual sun.tools.tree.Context.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
invokespecial java.lang.Integer.<init>:(I)V
astore 4
22: new java.lang.Integer
dup
aload 2
aload 1
aload 8
invokevirtual sun.tools.tree.Context.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
invokespecial java.lang.Integer.<init>:(I)V
astore 5
end local 9 end local 8 end local 7 23: StackMap locals: sun.tools.tree.FinallyStatement sun.tools.java.Environment sun.tools.tree.Context sun.tools.asm.Assembler java.lang.Integer java.lang.Integer sun.tools.asm.Label
StackMap stack:
new sun.tools.asm.TryData
dup
invokespecial sun.tools.asm.TryData.<init>:()V
astore 7
start local 7 24: aload 7
aconst_null
invokevirtual sun.tools.asm.TryData.add:(Ljava/lang/Object;)Lsun/tools/asm/CatchData;
pop
25: 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 8
start local 8 26: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
bipush -3
aload 7
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
27: aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
aload 1
aload 8
aload 3
invokevirtual sun.tools.tree.Statement.code:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
28: aload 3
aload 8
getfield sun.tools.tree.CodeContext.breakLabel:Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
29: aload 3
aload 7
invokevirtual sun.tools.asm.TryData.getEndLabel:()Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
30: aload 0
getfield sun.tools.tree.FinallyStatement.finallyCanFinish:Z
ifeq 34
31: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
sipush 168
aload 8
getfield sun.tools.tree.CodeContext.contLabel:Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
32: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
sipush 167
aload 6
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
33: goto 35
34: StackMap locals: sun.tools.asm.TryData sun.tools.tree.CodeContext
StackMap stack:
aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
sipush 167
aload 8
getfield sun.tools.tree.CodeContext.contLabel:Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
35: StackMap locals:
StackMap stack:
aload 7
iconst_0
invokevirtual sun.tools.asm.TryData.getCatch:(I)Lsun/tools/asm/CatchData;
astore 9
start local 9 36: aload 3
aload 9
invokevirtual sun.tools.asm.CatchData.getLabel:()Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
37: aload 0
getfield sun.tools.tree.FinallyStatement.finallyCanFinish:Z
ifeq 43
38: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
bipush 58
aload 4
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
39: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
sipush 168
aload 8
getfield sun.tools.tree.CodeContext.contLabel:Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
40: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
bipush 25
aload 4
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
41: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
sipush 191
invokevirtual sun.tools.asm.Assembler.add:(JI)V
42: goto 44
43: StackMap locals: sun.tools.asm.CatchData
StackMap stack:
aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
bipush 87
invokevirtual sun.tools.asm.Assembler.add:(JI)V
44: StackMap locals:
StackMap stack:
aload 3
aload 8
getfield sun.tools.tree.CodeContext.contLabel:Lsun/tools/asm/Label;
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
45: aload 8
aconst_null
putfield sun.tools.tree.CodeContext.contLabel:Lsun/tools/asm/Label;
46: aload 8
aload 6
putfield sun.tools.tree.CodeContext.breakLabel:Lsun/tools/asm/Label;
47: aload 0
getfield sun.tools.tree.FinallyStatement.finallyCanFinish:Z
ifeq 52
48: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
bipush 58
aload 5
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
49: aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
aload 1
aload 8
aload 3
invokevirtual sun.tools.tree.Statement.code:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
50: aload 3
aload 0
getfield sun.tools.tree.FinallyStatement.where:J
sipush 169
aload 5
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
51: goto 53
52: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
aload 1
aload 8
aload 3
invokevirtual sun.tools.tree.Statement.code:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
53: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual sun.tools.asm.Assembler.add:(Lsun/tools/asm/Instruction;)V
54: return
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 55 0 this Lsun/tools/tree/FinallyStatement;
0 55 1 env Lsun/tools/java/Environment;
0 55 2 ctx Lsun/tools/tree/Context;
0 55 3 asm Lsun/tools/asm/Assembler;
2 55 4 num1 Ljava/lang/Integer;
3 55 5 num2 Ljava/lang/Integer;
4 55 6 endLabel Lsun/tools/asm/Label;
8 9 7 exprctx Lsun/tools/tree/CodeContext;
20 23 7 f1 Lsun/tools/tree/LocalMember;
21 23 8 f2 Lsun/tools/tree/LocalMember;
11 23 9 thisClass Lsun/tools/java/ClassDefinition;
13 19 10 returnType Lsun/tools/java/Type;
17 19 11 localfield Lsun/tools/tree/LocalMember;
24 55 7 td Lsun/tools/asm/TryData;
26 55 8 bodyctx Lsun/tools/tree/CodeContext;
36 55 9 cd Lsun/tools/asm/CatchData;
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=3, locals=3, 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 "try "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
ifnull 5
3: aload 0
getfield sun.tools.tree.FinallyStatement.body:Lsun/tools/tree/Statement;
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 1
ldc "<empty>"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 1
ldc " finally "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
7: aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
ifnull 10
8: aload 0
getfield sun.tools.tree.FinallyStatement.finalbody:Lsun/tools/tree/Statement;
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 1
ldc "<empty>"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/tools/tree/FinallyStatement;
0 12 1 out Ljava/io/PrintStream;
0 12 2 indent I
MethodParameters:
Name Flags
out
indent
}
SourceFile: "FinallyStatement.java"