@Override public void visit(BreakStatement statement) { if (statement.getTarget() == replacedBreak) { replaceBy = new ContinueStatement(); replaceBy.setTarget(replacement); replaceBy.setLocation(statement.getLocation()); } }
Statement generateJumpStatement(BasicBlock target) { if (nextBlock == target && blockMap[target.getIndex()] == null) { return null; } Decompiler.Block block = blockMap[target.getIndex()]; if (block == null) { throw new IllegalStateException("Could not find block for basic block $" + target.getIndex()); } if (target.getIndex() == indexer.nodeAt(block.end)) { BreakStatement breakStmt = new BreakStatement(); breakStmt.setLocation(currentLocation); breakStmt.setTarget(block.statement); return breakStmt; } else { ContinueStatement contStmt = new ContinueStatement(); contStmt.setLocation(currentLocation); contStmt.setTarget(block.statement); return contStmt; } } private Statement generateJumpStatement(SwitchStatement stmt, int target) {
ContinueStatement stmt = new ContinueStatement(); stmt.setLocation(readLocation(input)); stmt.setTarget(statementMap.get(input.readUTF())); ContinueStatement stmt = new ContinueStatement(); stmt.setLocation(readLocation(input)); return stmt;
@Override public void visit(BreakStatement statement) { if (statement.getTarget() == replacedBreak) { replaceBy = new ContinueStatement(); replaceBy.setTarget(replacement); replaceBy.setLocation(statement.getLocation()); } }
Statement generateJumpStatement(BasicBlock target) { if (nextBlock == target && blockMap[target.getIndex()] == null) { return null; } Decompiler.Block block = blockMap[target.getIndex()]; if (block == null) { throw new IllegalStateException("Could not find block for basic block $" + target.getIndex()); } if (target.getIndex() == indexer.nodeAt(block.end)) { BreakStatement breakStmt = new BreakStatement(); breakStmt.setLocation(currentLocation); breakStmt.setTarget(block.statement); return breakStmt; } else { ContinueStatement contStmt = new ContinueStatement(); contStmt.setLocation(currentLocation); contStmt.setTarget(block.statement); return contStmt; } } private Statement generateJumpStatement(SwitchStatement stmt, int target) {
ContinueStatement stmt = new ContinueStatement(); stmt.setLocation(readLocation(input)); stmt.setTarget(statementMap.get(input.readUTF())); ContinueStatement stmt = new ContinueStatement(); stmt.setLocation(readLocation(input)); return stmt;