private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
private void convertRopToSsaBlocks(RopMethod rmeth) { BasicBlockList ropBlocks = rmeth.getBlocks(); int sz = ropBlocks.size(); blocks = new ArrayList<SsaBasicBlock>(sz + 2); for (int i = 0; i < sz; i++) { SsaBasicBlock sbb = SsaBasicBlock.newFromRop(rmeth, i, this); blocks.add(sbb); } // Add an no-op entry block. int origEntryBlockIndex = rmeth.getBlocks() .indexOfLabel(rmeth.getFirstLabel()); SsaBasicBlock entryBlock = blocks.get(origEntryBlockIndex).insertNewPredecessor(); entryBlockIndex = entryBlock.getIndex(); exitBlockIndex = -1; // This gets made later. }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
/** * Does the extraction. * * @return {@code non-null;} the extracted information */ private LocalVariableInfo doit() { for (int label = method.getFirstLabel(); label >= 0; label = Bits.findFirst(workSet, 0)) { Bits.clear(workSet, label); processBlock(label); } resultInfo.setImmutable(); return resultInfo; }
+ Hex.u2(rmeth.getFirstLabel()) + ";");
+ Hex.u2(rmeth.getFirstLabel()) + ";");
newBlocks.setImmutable(); return new RopMethod(newBlocks, ropMethod.getFirstLabel());
newBlocks.setImmutable(); return new RopMethod(newBlocks, ropMethod.getFirstLabel());