/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }