Class IRTryCatchFinallyStatementCompiler
java.lang.Object
gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
gw.internal.gosu.ir.compiler.bytecode.statement.IRTryCatchFinallyStatementCompiler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate IRBytecodeContext
private IRFinallyCodePartitioner
private IRTryCatchFinallyStatement
Fields inherited from class gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
OBJECT_TYPE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
-
Method Summary
Modifier and TypeMethodDescriptionprivate IRTryCatchFinallyStatement
_stmt()
private void
assignExceptionParam
(org.objectweb.asm.MethodVisitor mv, IRSymbol exceptionSym) private void
compile()
static void
compile
(IRTryCatchFinallyStatement stmt, IRBytecodeContext context) private void
compileCatchStatements
(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd, List<IRCatchClause> catchStmts) private void
compileFinallyStatement
(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart) private void
compileTryStatement
(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd) private void
declareCatchExtents
(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label coverageEnd, org.objectweb.asm.Label handlerStart, IRType type) private boolean
private void
inlineLocalFinallyStmt
(IRStatement tryOrCatchStmt, org.objectweb.asm.Label labelEnd) private void
insertTryCatchBlock
(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label handlerStart, IRType type, org.objectweb.asm.Label start, org.objectweb.asm.Label end) private void
popFinallyStmt
(IRFinallyCodePartitioner partition) private IRFinallyCodePartitioner
Methods inherited from class gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
compileConditionAssignment, getIns, isNotPartOfBooleanExpr, isWide, negateOpcode
-
Field Details
-
_finallyPartitioner
-
_stmt
-
_context
-
-
Constructor Details
-
IRTryCatchFinallyStatementCompiler
private IRTryCatchFinallyStatementCompiler(IRTryCatchFinallyStatement stmt, IRBytecodeContext context)
-
-
Method Details
-
_stmt
-
compile
-
compile
private void compile() -
compileTryStatement
private void compileTryStatement(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd) -
compileCatchStatements
private void compileCatchStatements(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd, List<IRCatchClause> catchStmts) -
declareCatchExtents
private void declareCatchExtents(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label coverageEnd, org.objectweb.asm.Label handlerStart, IRType type) -
insertTryCatchBlock
private void insertTryCatchBlock(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label handlerStart, IRType type, org.objectweb.asm.Label start, org.objectweb.asm.Label end) -
assignExceptionParam
-
compileFinallyStatement
private void compileFinallyStatement(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart) -
inlineLocalFinallyStmt
-
popFinallyStmt
-
pushFinallyStmt
-
hasFinally
private boolean hasFinally()
-