/** * Adds to the output. * * @param insn {@code non-null;} instruction to add */ protected void addOutput(DalvInsn insn) { output.add(insn); }
/** * Adds to the output suffix. * * @param insn {@code non-null;} instruction to add */ protected void addOutputSuffix(DalvInsn insn) { output.addSuffix(insn); } }
/** * Gets the results of all the calls on this instance, in the form of * an {@link OutputFinisher}. * * @return {@code non-null;} the output finisher * @throws UnsupportedOperationException if this method has * already been called */ public OutputFinisher getFinisher() { if (suffix == null) { throw new UnsupportedOperationException("already processed"); } appendSuffixToOutput(); return finisher; }
output.add(startAddress); output.add(new LocalSnapshot(startAddress.getPosition(), starts)); output.add(addresses.getEnd(block)); output.reverseBranch(1, addresses.getStart(succ)); } else { RegisterSpecList.EMPTY, addresses.getStart(succ)); output.add(insn);
/** * Does the translation and returns the result. * * @return {@code non-null;} the result */ private DalvCode translateAndGetResult() { pickOrder(); outputInstructions(); StdCatchBuilder catches = new StdCatchBuilder(method, order, addresses); return new DalvCode(positionInfo, output.getFinisher(), catches); }
+ (paramsAreInOrder ? 0 : this.paramSize); this.output = new OutputCollector(dexOptions, maxInsns, bsz * 3, regCount, paramSize);
output.add(startAddress); output.add(new LocalSnapshot(startAddress.getPosition(), starts)); output.add(addresses.getEnd(block)); output.reverseBranch(1, addresses.getStart(succ)); } else { RegisterSpecList.EMPTY, addresses.getStart(succ)); output.add(insn);
/** * Does the translation and returns the result. * * @return {@code non-null;} the result */ private DalvCode translateAndGetResult() { pickOrder(); outputInstructions(); StdCatchBuilder catches = new StdCatchBuilder(method, order, addresses); return new DalvCode(positionInfo, output.getFinisher(), catches); }
+ (paramsAreInOrder ? 0 : this.paramSize); this.output = new OutputCollector(dexOptions, maxInsns, bsz * 3, regCount);
output.add(startAddress); output.add(new LocalSnapshot(startAddress.getPosition(), starts)); output.add(addresses.getEnd(block)); output.reverseBranch(1, addresses.getStart(succ)); } else { RegisterSpecList.EMPTY, addresses.getStart(succ)); output.add(insn);
/** * Adds to the output suffix. * * @param insn {@code non-null;} instruction to add */ protected void addOutputSuffix(DalvInsn insn) { output.addSuffix(insn); } }
/** * Adds to the output. * * @param insn {@code non-null;} instruction to add */ protected void addOutput(DalvInsn insn) { output.add(insn); }
/** * Does the translation and returns the result. * * @return {@code non-null;} the result */ private DalvCode translateAndGetResult() { pickOrder(); outputInstructions(); StdCatchBuilder catches = new StdCatchBuilder(method, order, addresses); return new DalvCode(positionInfo, output.getFinisher(), catches); }
/** * Gets the results of all the calls on this instance, in the form of * an {@link OutputFinisher}. * * @return {@code non-null;} the output finisher * @throws UnsupportedOperationException if this method has * already been called */ public OutputFinisher getFinisher() { if (suffix == null) { throw new UnsupportedOperationException("already processed"); } appendSuffixToOutput(); return finisher; }
+ (paramsAreInOrder ? 0 : this.paramSize); this.output = new OutputCollector(dexOptions, maxInsns, bsz * 3, regCount, paramSize);
output.add(startAddress); output.add(new LocalSnapshot(startAddress.getPosition(), starts)); output.add(addresses.getEnd(block)); output.reverseBranch(1, addresses.getStart(succ)); } else { RegisterSpecList.EMPTY, addresses.getStart(succ)); output.add(insn);
/** * Adds to the output suffix. * * @param insn {@code non-null;} instruction to add */ protected void addOutputSuffix(DalvInsn insn) { output.addSuffix(insn); } }
/** * Adds to the output. * * @param insn {@code non-null;} instruction to add */ protected void addOutput(DalvInsn insn) { output.add(insn); }
/** * Does the translation and returns the result. * * @return {@code non-null;} the result */ private DalvCode translateAndGetResult() { pickOrder(); outputInstructions(); StdCatchBuilder catches = new StdCatchBuilder(method, order, addresses); return new DalvCode(positionInfo, output.getFinisher(), catches); }
/** * Gets the results of all the calls on this instance, in the form of * an {@link OutputFinisher}. * * @return {@code non-null;} the output finisher * @throws UnsupportedOperationException if this method has * already been called */ public OutputFinisher getFinisher() { if (suffix == null) { throw new UnsupportedOperationException("already processed"); } appendSuffixToOutput(); return finisher; }