diff --git a/jode/jode/flow/CreateForInitializer.java b/jode/jode/flow/CreateForInitializer.java index f4630f7..23a4cf9 100644 --- a/jode/jode/flow/CreateForInitializer.java +++ b/jode/jode/flow/CreateForInitializer.java @@ -45,7 +45,8 @@ public class CreateForInitializer implements Transformation { Expression initializer = ((InstructionBlock) sequBlock.subBlocks[0]).getInstruction(); - if (!(initializer.getOperator() instanceof StoreInstruction)) + if (!(initializer.getOperator() instanceof StoreInstruction) + || !initializer.getOperator().isVoid()) return false; if (jode.Decompiler.isVerbose) diff --git a/jode/jode/flow/CreatePrePostIncExpression.java b/jode/jode/flow/CreatePrePostIncExpression.java index fb5cb7b..3838600 100644 --- a/jode/jode/flow/CreatePrePostIncExpression.java +++ b/jode/jode/flow/CreatePrePostIncExpression.java @@ -96,6 +96,8 @@ public class CreatePrePostIncExpression implements Transformation { Expression storeExpr = lastBlock.getInstruction(); store = (StoreInstruction) storeExpr.getOperator(); + if (!store.isVoid()) + return false; sequBlock = (SequentialBlock) lastBlock.outer; if (sequBlock.subBlocks[1] != lastBlock) diff --git a/jode/jode/flow/FlowBlock.java b/jode/jode/flow/FlowBlock.java index f6caf21..13ae675 100644 --- a/jode/jode/flow/FlowBlock.java +++ b/jode/jode/flow/FlowBlock.java @@ -682,7 +682,8 @@ public class FlowBlock { if (jumps.next == null && jumps.prev == lastModified - && lastModified instanceof InstructionBlock) { + && lastModified instanceof InstructionBlock + && ((InstructionBlock)lastModified).getInstruction().isVoid()) { Expression instr = ((InstructionBlock)lastModified).getInstruction();