@Override public void visit(BreakStatement statement) { if (statement.getTarget() == currentBlock) { statement.setTarget(null); } else { hasRefs.add(statement.getTarget()); } }
private Statement generateJumpStatement(SwitchStatement stmt, int target) { Statement body = generateJumpStatement(program.basicBlockAt(target)); if (body == null) { BreakStatement breakStmt = new BreakStatement(); breakStmt.setTarget(stmt); body = breakStmt; } return body; }
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) {
BreakStatement stmt = new BreakStatement(); stmt.setLocation(readLocation(input)); stmt.setTarget(statementMap.get(input.readUTF())); return stmt;
@Override public void visit(BreakStatement statement) { if (statement.getTarget() == currentBlock) { statement.setTarget(null); } else { hasRefs.add(statement.getTarget()); } }
private Statement generateJumpStatement(SwitchStatement stmt, int target) { Statement body = generateJumpStatement(program.basicBlockAt(target)); if (body == null) { BreakStatement breakStmt = new BreakStatement(); breakStmt.setTarget(stmt); body = breakStmt; } return body; }
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) {
BreakStatement stmt = new BreakStatement(); stmt.setLocation(readLocation(input)); stmt.setTarget(statementMap.get(input.readUTF())); return stmt;