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 IRBytecodeContextprivate IRFinallyCodePartitionerprivate IRTryCatchFinallyStatementFields inherited from class gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
OBJECT_TYPE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate -
Method Summary
Modifier and TypeMethodDescriptionprivate IRTryCatchFinallyStatement_stmt()private voidassignExceptionParam(org.objectweb.asm.MethodVisitor mv, IRSymbol exceptionSym) private voidcompile()static voidcompile(IRTryCatchFinallyStatement stmt, IRBytecodeContext context) private voidcompileCatchStatements(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd, List<IRCatchClause> catchStmts) private voidcompileFinallyStatement(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart) private voidcompileTryStatement(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd) private voiddeclareCatchExtents(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label coverageEnd, org.objectweb.asm.Label handlerStart, IRType type) private booleanprivate voidinlineLocalFinallyStmt(IRStatement tryOrCatchStmt, org.objectweb.asm.Label labelEnd) private voidinsertTryCatchBlock(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label handlerStart, IRType type, org.objectweb.asm.Label start, org.objectweb.asm.Label end) private voidpopFinallyStmt(IRFinallyCodePartitioner partition) private IRFinallyCodePartitionerMethods 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()
-