Examples of IfOp


Examples of jadx.core.dex.instructions.IfOp

      code.add(')');
    }
  }

  private void addCompare(CodeWriter code, CondStack stack, Compare compare) throws CodegenException {
    IfOp op = compare.getOp();
    InsnArg firstArg = compare.getA();
    InsnArg secondArg = compare.getB();
    if (firstArg.getType().equals(ArgType.BOOLEAN)
        && secondArg.isLiteral()
        && secondArg.getType().equals(ArgType.BOOLEAN)) {
      LiteralArg lit = (LiteralArg) secondArg;
      if (lit.getLiteral() == 0) {
        op = op.invert();
      }
      if (op == IfOp.EQ) {
        // == true
        if (stack.getStack().size() == 1) {
          addArg(code, firstArg, false);
        } else {
          wrap(code, firstArg);
        }
        return;
      } else if (op == IfOp.NE) {
        // != true
        code.add('!');
        wrap(code, firstArg);
        return;
      }
      LOG.warn(ErrorsCounter.formatErrorMsg(mth, "Unsupported boolean condition " + op.getSymbol()));
    }

    addArg(code, firstArg, isArgWrapNeeded(firstArg));
    code.add(' ').add(op.getSymbol()).add(' ');
    addArg(code, secondArg, isArgWrapNeeded(secondArg));
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.