private String[] getVariableNames(ProgramReader program, boolean debuggerFriendly) { String[] names = new String[program.variableCount()]; for (int i = 0; i < names.length; ++i) { names[i] = program.variableAt(i).getDebugName(); if (debuggerFriendly && names[i] == null) { names[i] = ""; } } return names; }
InstructionStringifier(StringBuilder sb, ProgramReader program) { this.sb = sb; variableLabels = new String[program.variableCount()]; Set<String> occupiedLabels = new HashSet<>(); for (int i = 0; i < program.variableCount(); ++i) { VariableReader var = program.variableAt(i); String suggestedName = var.getLabel() != null ? var.getLabel() : Integer.toString(i); if (!occupiedLabels.add(suggestedName)) { int suffix = 1; String base = suggestedName + "_"; do { suggestedName = base + suffix++; } while (!occupiedLabels.add(suggestedName)); } variableLabels[i] = suggestedName; } }
InstructionStringifier stringifier = new InstructionStringifier(insnSb, program); for (int i = 0; i < program.variableCount(); ++i) { VariableReader var = program.variableAt(i); if (var == null || var.getDebugName() == null) { continue;
public static Program copy(ProgramReader program) { Program copy = new Program(); for (int i = 0; i < program.variableCount(); ++i) { Variable var = copy.createVariable(); var.setDebugName(program.variableAt(i).getDebugName()); var.setLabel(program.variableAt(i).getLabel()); } for (int i = 0; i < program.basicBlockCount(); ++i) { copy.createBasicBlock(); } for (int i = 0; i < program.basicBlockCount(); ++i) { BasicBlockReader block = program.basicBlockAt(i); BasicBlock blockCopy = copy.basicBlockAt(i); copyBasicBlock(block, blockCopy); } return copy; }
VariableReader variable = template.variableAt(i); Variable variableCopy = program.createVariable(); variableCopy.setDebugName(variable.getDebugName());
private String[] getVariableNames(ProgramReader program) { String[] names = new String[program.variableCount()]; for (int i = 0; i < names.length; ++i) { names[i] = program.variableAt(i).getDebugName(); } return names; }
InstructionStringifier(StringBuilder sb, ProgramReader program) { this.sb = sb; variableLabels = new String[program.variableCount()]; Set<String> occupiedLabels = new HashSet<>(); for (int i = 0; i < program.variableCount(); ++i) { VariableReader var = program.variableAt(i); String suggestedName = var.getLabel() != null ? var.getLabel() : Integer.toString(i); if (!occupiedLabels.add(suggestedName)) { int suffix = 1; String base = suggestedName + "_"; do { suggestedName = base + suffix++; } while (!occupiedLabels.add(suggestedName)); } variableLabels[i] = suggestedName; } }
InstructionStringifier stringifier = new InstructionStringifier(insnSb, program); for (int i = 0; i < program.variableCount(); ++i) { VariableReader var = program.variableAt(i); if (var == null || var.getDebugName() == null) { continue;
public static Program copy(ProgramReader program) { Program copy = new Program(); for (int i = 0; i < program.variableCount(); ++i) { Variable var = copy.createVariable(); var.setDebugName(program.variableAt(i).getDebugName()); var.setLabel(program.variableAt(i).getLabel()); } for (int i = 0; i < program.basicBlockCount(); ++i) { copy.createBasicBlock(); } for (int i = 0; i < program.basicBlockCount(); ++i) { BasicBlockReader block = program.basicBlockAt(i); BasicBlock blockCopy = copy.basicBlockAt(i); copyBasicBlock(block, blockCopy); } return copy; }
VariableReader variable = template.variableAt(i); Variable variableCopy = program.createVariable(); variableCopy.setDebugName(variable.getDebugName());