Package com.android.dx.rop.code

Examples of com.android.dx.rop.code.SourcePosition


            }           
        }

        /** {@inheritDoc} */
        public void visitThrowingCstInsn(ThrowingCstInsn insn) {
            SourcePosition pos = insn.getPosition();
            Dop opcode = RopToDop.dopFor(insn);
            Rop rop = insn.getOpcode();
            Constant cst = insn.getConstant();

            if (rop.getBranchingness() != Rop.BRANCH_THROW) {
View Full Code Here


            }
        }

        /** {@inheritDoc} */
        public void visitThrowingInsn(ThrowingInsn insn) {
            SourcePosition pos = insn.getPosition();
            Dop opcode = RopToDop.dopFor(insn);
            Rop rop = insn.getOpcode();
            RegisterSpec realResult;

            if (rop.getBranchingness() != Rop.BRANCH_THROW) {
View Full Code Here

            addOutput(di);
        }

        /** {@inheritDoc} */
        public void visitFillArrayDataInsn(FillArrayDataInsn insn) {
            SourcePosition pos = insn.getPosition();
            Constant cst = insn.getConstant();
            ArrayList<Constant> values = insn.getInitValues();
            Rop rop = insn.getOpcode();

            if (rop.getBranchingness() != Rop.BRANCH_NONE) {
View Full Code Here

            default: {
                throw new IllegalArgumentException("bogus howMuch");
            }
        }

        SourcePosition noInfo = SourcePosition.NO_INFO;
        SourcePosition cur = noInfo;
        int sz = insns.size();
        PositionList.Entry[] arr = new PositionList.Entry[sz];
        boolean lastWasTarget = false;
        int at = 0;

        for (int i = 0; i < sz; i++) {
            DalvInsn insn = insns.get(i);

            if (insn instanceof CodeAddress) {
                lastWasTarget = true;;
                continue;
            }

            SourcePosition pos = insn.getPosition();

            if (pos.equals(noInfo) || pos.sameLine(cur)) {
                continue;
            }

            if ((howMuch == IMPORTANT) && !lastWasTarget) {
                continue;
View Full Code Here

            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);
        }
    }
View Full Code Here

     *
     * @param offset {@code >= 0;} the bytecode offset
     * @return {@code non-null;} an appropriate instance
     */
    public SourcePosition makeSourcePosistion(int offset) {
        return new SourcePosition(sourceFile, offset,
                                  lineNumbers.pcToLine(offset));
    }
View Full Code Here

     */
    private void updateInfo(DalvInsn insn)
    {
  if (!hasAnyPositionInfo)
  {
      SourcePosition pos= insn.getPosition();
      if (pos.getLine() >= 0)
      {
    hasAnyPositionInfo= true;
      }
  }

View Full Code Here

     * @throws IOException
     */
    private void emitPosition(PositionList.Entry entry)
            throws IOException {

        SourcePosition pos = entry.getPosition();
        int newLine = pos.getLine();
        int newAddress = entry.getAddress();

        int opcode;

        int deltaLines = newLine - line;
View Full Code Here

        RegisterSpecList sources = getSources(opcode, stackPointer);
        int sourceCount = sources.size();

        super.run(frame, offset, opcode);

        SourcePosition pos = method.makeSourcePosistion(offset);
        RegisterSpec localTarget = getLocalTarget();
        int destCount = resultCount();
        RegisterSpec dest;

        if (destCount == 0) {
View Full Code Here

    if (instruction instanceof CodeAddress)
    {
      // We put debug information about source code positions into the
      // code so that we can control the debugger.
      SourcePosition sourcePosition= instruction.getPosition();
      CstUtf8 sourceFile= sourcePosition.getSourceFile();
      int sourceLine= sourcePosition.getLine();
      if (sourceFile != null && !sourceLinesAlreadyPut.contains(sourceLine))
      {
        dexInstruction= new Element("source-position", NS_XMLVM);
        dexInstruction.setAttribute("file", sourceFile.toHuman());
        dexInstruction.setAttribute("line", String.valueOf(sourceLine));
View Full Code Here

TOP

Related Classes of com.android.dx.rop.code.SourcePosition

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.