bug fix for exceptionLocal == null case

git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1099 379699f6-c40d-0410-875b-85095c16579e
branch_1_1
jochen 25 years ago
parent c2ec44a43b
commit b462a21ed6
  1. 30
      jode/jode/flow/CatchBlock.java.in

@ -145,20 +145,22 @@ public class CatchBlock extends StructuredBlock {
* If we are unlucky the exceptionLocal is used outside of * If we are unlucky the exceptionLocal is used outside of
* this block. In that case we do a transformation. * this block. In that case we do a transformation.
*/ */
if (declare.contains(exceptionLocal)) if (exceptionLocal != null) {
declare.remove(exceptionLocal); if (declare.contains(exceptionLocal))
else { declare.remove(exceptionLocal);
LocalInfo dummyLocal = new LocalInfo(); else {
Expression store = new StoreInstruction LocalInfo dummyLocal = new LocalInfo();
(new LocalStoreOperator Expression store = new StoreInstruction
(exceptionLocal.getType(), exceptionLocal)).addOperand (new LocalStoreOperator
(new LocalLoadOperator(dummyLocal.getType(), (exceptionLocal.getType(), exceptionLocal)).addOperand
null, dummyLocal)); (new LocalLoadOperator(dummyLocal.getType(),
InstructionBlock ib = new InstructionBlock(store); null, dummyLocal));
ib.setFlowBlock(flowBlock); InstructionBlock ib = new InstructionBlock(store);
ib.appendBlock(catchBlock); ib.setFlowBlock(flowBlock);
catchBlock = ib; ib.appendBlock(catchBlock);
exceptionLocal = dummyLocal; catchBlock = ib;
exceptionLocal = dummyLocal;
}
} }
} }

Loading…
Cancel
Save