public class sun.tools.tree.CatchStatement extends sun.tools.tree.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.tree.CatchStatement
super_class: sun.tools.tree.Statement
{
int mod;
descriptor: I
flags: (0x0000)
sun.tools.tree.Expression texpr;
descriptor: Lsun/tools/tree/Expression;
flags: (0x0000)
sun.tools.java.Identifier id;
descriptor: Lsun/tools/java/Identifier;
flags: (0x0000)
sun.tools.tree.Statement body;
descriptor: Lsun/tools/tree/Statement;
flags: (0x0000)
sun.tools.tree.LocalMember field;
descriptor: Lsun/tools/tree/LocalMember;
flags: (0x0000)
public void <init>(long, sun.tools.tree.Expression, sun.tools.java.IdentifierToken, sun.tools.tree.Statement);
descriptor: (JLsun/tools/tree/Expression;Lsun/tools/java/IdentifierToken;Lsun/tools/tree/Statement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 0
bipush 102
lload 1
invokespecial sun.tools.tree.Statement.<init>:(IJ)V
1: aload 0
aload 4
invokevirtual sun.tools.java.IdentifierToken.getModifiers:()I
putfield sun.tools.tree.CatchStatement.mod:I
2: aload 0
aload 3
putfield sun.tools.tree.CatchStatement.texpr:Lsun/tools/tree/Expression;
3: aload 0
aload 4
invokevirtual sun.tools.java.IdentifierToken.getName:()Lsun/tools/java/Identifier;
putfield sun.tools.tree.CatchStatement.id:Lsun/tools/java/Identifier;
4: aload 0
aload 5
putfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
5: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/tools/tree/CatchStatement;
0 6 1 where J
0 6 3 texpr Lsun/tools/tree/Expression;
0 6 4 id Lsun/tools/java/IdentifierToken;
0 6 5 body Lsun/tools/tree/Statement;
MethodParameters:
Name Flags
where
texpr
id
body
public void <init>(long, sun.tools.tree.Expression, sun.tools.java.Identifier, sun.tools.tree.Statement);
descriptor: (JLsun/tools/tree/Expression;Lsun/tools/java/Identifier;Lsun/tools/tree/Statement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 0
bipush 102
lload 1
invokespecial sun.tools.tree.Statement.<init>:(IJ)V
1: aload 0
aload 3
putfield sun.tools.tree.CatchStatement.texpr:Lsun/tools/tree/Expression;
2: aload 0
aload 4
putfield sun.tools.tree.CatchStatement.id:Lsun/tools/java/Identifier;
3: aload 0
aload 5
putfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
4: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/tree/CatchStatement;
0 5 1 where J
0 5 3 texpr Lsun/tools/tree/Expression;
0 5 4 id Lsun/tools/java/Identifier;
0 5 5 body Lsun/tools/tree/Statement;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
where
texpr
id
body
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=9, locals=7, 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.CatchStatement.reach:(Lsun/tools/java/Environment;Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
astore 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 0
getfield sun.tools.tree.CatchStatement.texpr:Lsun/tools/tree/Expression;
aload 1
aload 2
invokevirtual sun.tools.tree.Expression.toType:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/java/Type;
astore 5
start local 5 3: aload 2
aload 0
getfield sun.tools.tree.CatchStatement.id:Lsun/tools/java/Identifier;
invokevirtual sun.tools.tree.Context.getLocalField:(Lsun/tools/java/Identifier;)Lsun/tools/tree/LocalMember;
ifnull 5
4: aload 1
aload 0
getfield sun.tools.tree.CatchStatement.where:J
ldc "local.redefined"
aload 0
getfield sun.tools.tree.CatchStatement.id:Lsun/tools/java/Identifier;
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
5: StackMap locals: sun.tools.java.Type
StackMap stack:
aload 5
bipush 13
invokevirtual sun.tools.java.Type.isType:(I)Z
ifne 15
6: aload 5
bipush 10
invokevirtual sun.tools.java.Type.isType:(I)Z
ifne 9
7: aload 1
aload 0
getfield sun.tools.tree.CatchStatement.where:J
ldc "catch.not.throwable"
aload 5
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
8: goto 15
9: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual sun.tools.java.Environment.getClassDefinition:(Lsun/tools/java/Type;)Lsun/tools/java/ClassDefinition;
astore 6
start local 6 10: aload 6
aload 1
11: aload 1
getstatic sun.tools.tree.CatchStatement.idJavaLangThrowable:Lsun/tools/java/Identifier;
invokevirtual sun.tools.java.Environment.getClassDeclaration:(Lsun/tools/java/Identifier;)Lsun/tools/java/ClassDeclaration;
12: invokevirtual sun.tools.java.ClassDefinition.subClassOf:(Lsun/tools/java/Environment;Lsun/tools/java/ClassDeclaration;)Z
13: ifne 15
14: aload 1
aload 0
getfield sun.tools.tree.CatchStatement.where:J
ldc "catch.not.throwable"
aload 6
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
end local 6 15: StackMap locals:
StackMap stack:
aload 0
new sun.tools.tree.LocalMember
dup
aload 0
getfield sun.tools.tree.CatchStatement.where:J
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.getClassDefinition:()Lsun/tools/java/ClassDefinition;
aload 0
getfield sun.tools.tree.CatchStatement.mod:I
aload 5
aload 0
getfield sun.tools.tree.CatchStatement.id:Lsun/tools/java/Identifier;
invokespecial sun.tools.tree.LocalMember.<init>:(JLsun/tools/java/ClassDefinition;ILsun/tools/java/Type;Lsun/tools/java/Identifier;)V
putfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
16: aload 2
aload 1
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
invokevirtual sun.tools.tree.Context.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
pop
17: aload 3
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
getfield sun.tools.tree.LocalMember.number:I
invokevirtual sun.tools.tree.Vset.addVar:(I)Lsun/tools/tree/Vset;
pop
18: aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
aload 1
aload 2
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;
19: areturn
20: StackMap locals:
StackMap stack: sun.tools.java.ClassNotFound
astore 6
start local 6 21: aload 1
aload 0
getfield sun.tools.tree.CatchStatement.where:J
ldc "class.not.found"
aload 6
getfield sun.tools.java.ClassNotFound.name:Lsun/tools/java/Identifier;
getstatic sun.tools.tree.CatchStatement.opNames:[Ljava/lang/String;
aload 0
getfield sun.tools.tree.CatchStatement.op:I
aaload
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
22: aload 3
areturn
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 23 0 this Lsun/tools/tree/CatchStatement;
0 23 1 env Lsun/tools/java/Environment;
0 23 2 ctx Lsun/tools/tree/Context;
0 23 3 vset Lsun/tools/tree/Vset;
0 23 4 exp Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;
3 23 5 type Lsun/tools/java/Type;
10 15 6 def Lsun/tools/java/ClassDefinition;
21 23 6 e Lsun/tools/java/ClassNotFound;
Exception table:
from to target type
3 19 20 Class sun.tools.java.ClassNotFound
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=4, locals=3, 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
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
invokevirtual sun.tools.tree.LocalMember.isUsed:()Z
ifeq 3
2: aload 2
aload 1
aload 0
getfield sun.tools.tree.CatchStatement.field: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.CatchStatement.body:Lsun/tools/tree/Statement;
ifnull 5
4: aload 0
aload 0
getfield sun.tools.tree.CatchStatement.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.CatchStatement.body:Lsun/tools/tree/Statement;
5: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/tools/tree/CatchStatement;
0 6 1 env Lsun/tools/java/Environment;
0 6 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.CatchStatement.clone:()Ljava/lang/Object;
checkcast sun.tools.tree.CatchStatement
astore 3
start local 3 1: aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
ifnull 3
2: aload 3
aload 0
getfield sun.tools.tree.CatchStatement.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.CatchStatement.body:Lsun/tools/tree/Statement;
3: StackMap locals: sun.tools.tree.CatchStatement
StackMap stack:
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
ifnull 5
4: aload 3
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
aload 1
invokevirtual sun.tools.tree.LocalMember.copyInline:(Lsun/tools/tree/Context;)Lsun/tools/tree/LocalMember;
putfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
5: 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 6 0 this Lsun/tools/tree/CatchStatement;
0 6 1 ctx Lsun/tools/tree/Context;
0 6 2 valNeeded Z
1 6 3 s Lsun/tools/tree/CatchStatement;
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_1
istore 4
start local 4 1: aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
ifnull 3
2: iload 4
aload 0
getfield sun.tools.tree.CatchStatement.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
3: StackMap locals: int
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 4 0 this Lsun/tools/tree/CatchStatement;
0 4 1 thresh I
0 4 2 env Lsun/tools/java/Environment;
0 4 3 ctx Lsun/tools/tree/Context;
1 4 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=5, 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.CatchStatement.field:Lsun/tools/tree/LocalMember;
invokevirtual sun.tools.tree.LocalMember.isUsed:()Z
ifeq 5
2: aload 4
aload 1
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
invokevirtual sun.tools.tree.CodeContext.declare:(Lsun/tools/java/Environment;Lsun/tools/tree/LocalMember;)I
pop
3: aload 3
aload 0
getfield sun.tools.tree.CatchStatement.where:J
bipush 58
new sun.tools.asm.LocalVariable
dup
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
aload 0
getfield sun.tools.tree.CatchStatement.field:Lsun/tools/tree/LocalMember;
getfield sun.tools.tree.LocalMember.number:I
invokespecial sun.tools.asm.LocalVariable.<init>:(Lsun/tools/java/MemberDefinition;I)V
invokevirtual sun.tools.asm.Assembler.add:(JILjava/lang/Object;)V
4: goto 6
5: StackMap locals: sun.tools.tree.CodeContext
StackMap stack:
aload 3
aload 0
getfield sun.tools.tree.CatchStatement.where:J
bipush 87
invokevirtual sun.tools.asm.Assembler.add:(JI)V
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
ifnull 8
7: aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
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
8: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/tools/tree/CatchStatement;
0 9 1 env Lsun/tools/java/Environment;
0 9 2 ctx Lsun/tools/tree/Context;
0 9 3 asm Lsun/tools/asm/Assembler;
1 9 4 newctx Lsun/tools/tree/CodeContext;
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=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 "catch ("
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: aload 0
getfield sun.tools.tree.CatchStatement.texpr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.print:(Ljava/io/PrintStream;)V
3: aload 1
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.tools.tree.CatchStatement.id:Lsun/tools/java/Identifier;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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.print:(Ljava/lang/String;)V
4: aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
ifnull 7
5: aload 0
getfield sun.tools.tree.CatchStatement.body:Lsun/tools/tree/Statement;
aload 1
iload 2
invokevirtual sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 1
ldc "<empty>"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/tools/tree/CatchStatement;
0 9 1 out Ljava/io/PrintStream;
0 9 2 indent I
MethodParameters:
Name Flags
out
indent
}
SourceFile: "CatchStatement.java"