Package jadx.core.utils.exceptions

Examples of jadx.core.utils.exceptions.JadxRuntimeException


          changed = true;
          liveIn[blockId] = newIn;
        }
      }
      if (k++ > 1000) {
        throw new JadxRuntimeException("Live variable analysis reach iterations limit");
      }
    } while (changed);

    this.liveIn = liveIn;
  }
View Full Code Here


      }
      if (!insn.canReorder() || ArgsInfo.usedArgAssign(insn, args)) {
        return false;
      }
    }
    throw new JadxRuntimeException("Can't process instruction move : " + assignBlock);
  }
View Full Code Here

      if (!list.isEmpty() && !args.isEmpty()) {
        list.removeAll(args);
      }
      i++;
      if (i > 1000) {
        throw new JadxRuntimeException("Can't inline arguments for: " + arg + " insn: " + assignInsn);
      }
    } while (!list.isEmpty());

    return arg.wrapInstruction(assignInsn);
  }
View Full Code Here

      if (start == to) {
        // previous instruction or on edge of inline border
        return true;
      }
      if (start > to) {
        throw new JadxRuntimeException("Invalid inline insn positions: " + start + " - " + to);
      }
      BitSet movedSet;
      if (movedArgs.isEmpty()) {
        if (startInfo.insn.isConstInsn()) {
          return true;
View Full Code Here

    for (BlockNode s : block.getSuccessors()) {
      PhiListAttr phiList = s.get(AType.PHI_LIST);
      if (phiList != null) {
        int j = s.getPredecessors().indexOf(block);
        if (j == -1) {
          throw new JadxRuntimeException("Can't find predecessor for " + block + " " + s);
        }
        for (PhiInsn phiInsn : phiList.getList()) {
          if (j >= phiInsn.getArgsCount()) {
            continue;
          }
View Full Code Here

        for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {
          BlockNode dom = basicBlocks.get(i);
          bs.andNot(dom.getDoms());
        }
        if (bs.cardinality() != 1) {
          throw new JadxRuntimeException("Can't find immediate dominator for block " + block
              + " in " + bs + " preds:" + preds);
        }
        idom = basicBlocks.get(bs.nextSetBit(0));
      }
      block.setIDom(idom);
View Full Code Here

  }

  private static boolean modifyBlocksTree(MethodNode mth) {
    for (BlockNode block : mth.getBasicBlocks()) {
      if (block.getPredecessors().isEmpty() && block != mth.getEnterBlock()) {
        throw new JadxRuntimeException("Unreachable block: " + block);
      }

      // check loops
      List<LoopInfo> loops = block.getAll(AType.LOOP);
      if (loops.size() > 1) {
View Full Code Here

        list.add(resultArg);
      }
      insnNode.getRegisterArgs(list);
      for (int i = 0, listSize = list.size(); i < listSize; i++) {
        if (list.get(i).getRegNum() >= regsCount) {
          throw new JadxRuntimeException("Incorrect register number in instruction: " + insnNode);
        }
      }
    }
  }
View Full Code Here

      return new JField(fld, new JClass(fld.getDeclaringClass()));
    }
    if (node == null) {
      return null;
    }
    throw new JadxRuntimeException("Unknown type for JavaNode: " + node.getClass());
  }
View Full Code Here

        public void leaveRegion(MethodNode mth, IRegion region) {
          checkAndWrap(mth, tryBlocksMap, region);
        }
      });
      if (k++ > 100) {
        throw new JadxRuntimeException("Try/catch wrap count limit reached in " + mth);
      }
    }
  }
View Full Code Here

TOP

Related Classes of jadx.core.utils.exceptions.JadxRuntimeException

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.