Package com.android.dx.dex.code.CatchTable

Examples of com.android.dx.dex.code.CatchTable.Entry


    {
      return;
    }
    for (int i= 0; i < catchTable.size(); ++i)
    {
      Entry entry= catchTable.get(i);
      CatchHandlerList catchHandlers= entry.getHandlers();
      for (int j= 0; j < catchHandlers.size(); ++j)
      {
        // TODO: Do we need these? Shouldn't they be handled by code, if
        // accessed?
        // dependencies.add(catchHandlers.get(j).getExceptionType().toHuman());
View Full Code Here


    Element catchTableElement= new Element("catches", NS_DEX);

    for (int i= 0; i < catchTable.size(); ++i)
    {
      Entry entry= catchTable.get(i);
      Element entryElement= new Element("entry", NS_DEX);
      entryElement.setAttribute("start", String.valueOf(entry.getStart()));
      entryElement.setAttribute("end", String.valueOf(entry.getEnd()));

      CatchHandlerList catchHandlers= entry.getHandlers();
      for (int j= 0; j < catchHandlers.size(); ++j)
      {
        com.android.dx.dex.code.CatchHandlerList.Entry handlerEntry= catchHandlers.get(j);
        String exceptionType= handlerEntry.getExceptionType().toHuman();
View Full Code Here

      DalvInsn instruction= instructions.get(i);
      int address= instruction.getAddress();

      // Determine whether to add the next instruction to the
      // codeElement or to a try block.
      Entry currentCatch= null;
      int tryElementIndex= 0;
      for (tryElementIndex= 0; tryElementIndex < catches.size(); ++tryElementIndex)
      {
        if (isInstructionInCatchRange(instruction, catches.get(tryElementIndex)))
        {
          instructionParent= tryElements.get(tryElementIndex);
          currentCatch= catches.get(tryElementIndex);
          break;
        }
      }

      // Adds a label element for each target we extracted earlier.
      if (targets.containsKey(address))
      {
        Element labelElement= new Element("label", NS_DEX);
        labelElement.setAttribute("id", String.valueOf(address));

        if (currentCatch != null)
        {
          // Labels at the beginning of a try block need to be
          // moved in front of it.
          if (currentCatch.getStart() == address)
          {
            codeElement.addContent(labelElement);
          }
          else if (targets.get(address).requiresSplit)
          {
View Full Code Here

TOP

Related Classes of com.android.dx.dex.code.CatchTable.Entry

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.