Package jadx.core.dex.instructions.args

Examples of jadx.core.dex.instructions.args.ArgType


    if (!blockInsns.isEmpty()) {
      InsnNode insn = blockInsns.get(0);
      if (insn.getType() == InsnType.MOVE_EXCEPTION) {
        // result arg used both in this insn and exception handler,
        RegisterArg resArg = insn.getResult();
        ArgType type = excHandler.isCatchAll() ? ArgType.THROWABLE : excHandler.getCatchType().getType();
        String name = excHandler.isCatchAll() ? "th" : "e";
        if (resArg.getName() == null) {
          resArg.setName(name);
        }
        SSAVar sVar = insn.getResult().getSVar();
View Full Code Here


  public static ClassInfo fromDex(DexNode dex, int clsIndex) {
    if (clsIndex == DexNode.NO_INDEX) {
      return null;
    }
    ArgType type = dex.getType(clsIndex);
    if (type.isArray()) {
      type = ArgType.OBJECT;
    }
    return fromType(type);
  }
View Full Code Here

        node.addArg(InsnArg.reg(insn, 1, ArgType.UNKNOWN_OBJECT));
        return node;
      }

      case Opcodes.CHECK_CAST: {
        ArgType castType = dex.getType(insn.getIndex());
        InsnNode node = new IndexInsnNode(InsnType.CHECK_CAST, castType, 1);
        node.setResult(InsnArg.reg(insn, 0, castType));
        node.addArg(InsnArg.reg(insn, 0, ArgType.UNKNOWN_OBJECT));
        return node;
      }
View Full Code Here

    return new FillArrayNode(insn.getA(), (FillArrayDataPayloadDecodedInstruction) payload);
  }

  private InsnNode filledNewArray(DecodedInstruction insn, int offset, boolean isRange) {
    int resReg = getMoveResultRegister(insnArr, offset);
    ArgType arrType = dex.getType(insn.getIndex());
    ArgType elType = arrType.getArrayElement();
    boolean typeImmutable = elType.isPrimitive();
    int regsCount = insn.getRegisterCount();
    InsnArg[] regs = new InsnArg[regsCount];
    if (isRange) {
      int r = insn.getA();
      for (int i = 0; i < regsCount; i++) {
View Full Code Here

      return false;
    }
    code.add('<');
    int i = 0;
    for (Entry<ArgType, List<ArgType>> e : gmap.entrySet()) {
      ArgType type = e.getKey();
      List<ArgType> list = e.getValue();
      if (i != 0) {
        code.add(", ");
      }
      if (type.isGenericType()) {
        code.add(type.getObject());
      } else {
        useClass(code, ClassInfo.fromType(type));
      }
      if (list != null && !list.isEmpty()) {
        code.add(" extends ");
        for (Iterator<ArgType> it = list.iterator(); it.hasNext(); ) {
          ArgType g = it.next();
          if (g.isGenericType()) {
            code.add(g.getObject());
          } else {
            useClass(code, ClassInfo.fromType(g));
          }
          if (it.hasNext()) {
            code.add(" & ");
View Full Code Here

      int len = generics.length;
      for (int i = 0; i < len; i++) {
        if (i != 0) {
          code.add(", ");
        }
        ArgType gt = generics[i];
        ArgType wt = gt.getWildcardType();
        if (wt != null) {
          code.add('?');
          int bounds = gt.getWildcardBounds();
          if (bounds != 0) {
            code.add(bounds == -1 ? " super " : " extends ");
View Full Code Here

      return;
    }
    ExceptionHandler excHandler = handlerAttr.getHandler();
    block.addAttr(handlerAttr);
    // set correct type for 'move-exception' operation
    ArgType type = excHandler.isCatchAll() ? ArgType.THROWABLE : excHandler.getCatchType().getType();

    RegisterArg resArg = me.getResult();
    resArg = InsnArg.reg(resArg.getRegNum(), type);
    me.setResult(resArg);
    me.add(AFlag.DONT_INLINE);
View Full Code Here

    Annotation an = mth.getAnnotation(Consts.DALVIK_THROWS);
    if (an != null) {
      Object exs = an.getDefaultValue();
      code.add(" throws ");
      for (Iterator<ArgType> it = ((List<ArgType>) exs).iterator(); it.hasNext(); ) {
        ArgType ex = it.next();
        classGen.useType(code, ex);
        if (it.hasNext()) {
          code.add(", ");
        }
      }
View Full Code Here

TOP

Related Classes of jadx.core.dex.instructions.args.ArgType

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.