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 26 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
* this block. In that case we do a transformation.
*/
if (declare.contains(exceptionLocal))
declare.remove(exceptionLocal);
else {
LocalInfo dummyLocal = new LocalInfo();
Expression store = new StoreInstruction
(new LocalStoreOperator
(exceptionLocal.getType(), exceptionLocal)).addOperand
(new LocalLoadOperator(dummyLocal.getType(),
null, dummyLocal));
InstructionBlock ib = new InstructionBlock(store);
ib.setFlowBlock(flowBlock);
ib.appendBlock(catchBlock);
catchBlock = ib;
exceptionLocal = dummyLocal;
if (exceptionLocal != null) {
if (declare.contains(exceptionLocal))
declare.remove(exceptionLocal);
else {
LocalInfo dummyLocal = new LocalInfo();
Expression store = new StoreInstruction
(new LocalStoreOperator
(exceptionLocal.getType(), exceptionLocal)).addOperand
(new LocalLoadOperator(dummyLocal.getType(),
null, dummyLocal));
InstructionBlock ib = new InstructionBlock(store);
ib.setFlowBlock(flowBlock);
ib.appendBlock(catchBlock);
catchBlock = ib;
exceptionLocal = dummyLocal;
}
}
}

Loading…
Cancel
Save