本文整理汇总了Java中org.objectweb.asm.Opcodes.IFNONNULL属性的典型用法代码示例。如果您正苦于以下问题:Java Opcodes.IFNONNULL属性的具体用法?Java Opcodes.IFNONNULL怎么用?Java Opcodes.IFNONNULL使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.objectweb.asm.Opcodes
的用法示例。
在下文中一共展示了Opcodes.IFNONNULL属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getJumpTargets
private int[] getJumpTargets(JumpInsnNode jump) {
switch (jump.getOpcode()) {
case Opcodes.IFEQ:
case Opcodes.IFNE:
case Opcodes.IFLT:
case Opcodes.IFGE:
case Opcodes.IFGT:
case Opcodes.IFLE:
case Opcodes.IF_ICMPEQ:
case Opcodes.IF_ICMPNE:
case Opcodes.IF_ICMPLT:
case Opcodes.IF_ICMPGE:
case Opcodes.IF_ICMPGT:
case Opcodes.IF_ICMPLE:
case Opcodes.IF_ACMPEQ:
case Opcodes.IF_ACMPNE:
case Opcodes.IFNULL:
case Opcodes.IFNONNULL:
return new int[]{getOffset(jump.label), getOffset(jump.getNext())};
case Opcodes.GOTO:
return new int[]{getOffset(jump.label)};
case Opcodes.JSR: {
throw new Unreachable("JSR should be handled by the ASM jsr inliner");
}
default:
throw new Unreachable("Unexpected opcode in jump instruction: " + jump);
}
}
示例2: visitJumpInsn
/**
* Imports branch instructions, both conditional and unconditional.
*
* @param opcode Opcode.
* @param label Destination of branch.
*/
@Override
public void visitJumpInsn(final int opcode, final Label label) {
BasicBlock section = getBasicBlock(label);
switch(opcode) {
// Unconditional Branch
case Opcodes.GOTO: finishBlock(section); setCurrent(null); break;
// Zero Test
case Opcodes.IFEQ: createZeroCondition(Condition.Operator.EQ, section); break;
case Opcodes.IFNE: createZeroCondition(Condition.Operator.NE, section); break;
case Opcodes.IFLT: createZeroCondition(Condition.Operator.LT, section); break;
case Opcodes.IFGE: createZeroCondition(Condition.Operator.GE, section); break;
case Opcodes.IFGT: createZeroCondition(Condition.Operator.GT, section); break;
case Opcodes.IFLE: createZeroCondition(Condition.Operator.LE, section); break;
// Integer Comparison
case Opcodes.IF_ICMPEQ: createCondition(Condition.Operator.EQ, section); break;
case Opcodes.IF_ICMPNE: createCondition(Condition.Operator.NE, section); break;
case Opcodes.IF_ICMPLT: createCondition(Condition.Operator.LT, section); break;
case Opcodes.IF_ICMPGE: createCondition(Condition.Operator.GE, section); break;
case Opcodes.IF_ICMPGT: createCondition(Condition.Operator.GT, section); break;
case Opcodes.IF_ICMPLE: createCondition(Condition.Operator.LE, section); break;
// Reference Comparisons
case Opcodes.IF_ACMPEQ: createCondition(Condition.Operator.EQ, section); break;
case Opcodes.IF_ACMPNE: createCondition(Condition.Operator.NE, section); break;
case Opcodes.IFNULL: createNullCondition(Condition.Operator.EQ, section); break;
case Opcodes.IFNONNULL: createNullCondition(Condition.Operator.NE, section); break;
// TODO: JSR (paired with RET)
case Opcodes.JSR: System.err.println("visitJumpInsn: JSR");
}
}
示例3: getForNullComparison
public static Truthness getForNullComparison(Object obj, int opcode) {
switch (opcode){
case Opcodes.IFNULL: // ie, obj == null
return getForObjectComparison(obj, null, Opcodes.IF_ACMPEQ);
case Opcodes.IFNONNULL: // ie, obj != null
return getForObjectComparison(obj, null, Opcodes.IF_ACMPNE);
default:
throw new IllegalArgumentException("Cannot handle opcode " + opcode);
}
}
示例4: visitJumpInsn
@Override
public void visitJumpInsn(final int opcode, final Label label) {
switch (opcode) {
case Opcodes.IFEQ:
ifeq(label);
break;
case Opcodes.IFNE:
ifne(label);
break;
case Opcodes.IFLT:
iflt(label);
break;
case Opcodes.IFGE:
ifge(label);
break;
case Opcodes.IFGT:
ifgt(label);
break;
case Opcodes.IFLE:
ifle(label);
break;
case Opcodes.IF_ICMPEQ:
ificmpeq(label);
break;
case Opcodes.IF_ICMPNE:
ificmpne(label);
break;
case Opcodes.IF_ICMPLT:
ificmplt(label);
break;
case Opcodes.IF_ICMPGE:
ificmpge(label);
break;
case Opcodes.IF_ICMPGT:
ificmpgt(label);
break;
case Opcodes.IF_ICMPLE:
ificmple(label);
break;
case Opcodes.IF_ACMPEQ:
ifacmpeq(label);
break;
case Opcodes.IF_ACMPNE:
ifacmpne(label);
break;
case Opcodes.GOTO:
goTo(label);
break;
case Opcodes.JSR:
jsr(label);
break;
case Opcodes.IFNULL:
ifnull(label);
break;
case Opcodes.IFNONNULL:
ifnonnull(label);
break;
default:
throw new IllegalArgumentException();
}
}