本文整理汇总了Java中org.objectweb.asm.Opcodes.ACONST_NULL属性的典型用法代码示例。如果您正苦于以下问题:Java Opcodes.ACONST_NULL属性的具体用法?Java Opcodes.ACONST_NULL怎么用?Java Opcodes.ACONST_NULL使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.objectweb.asm.Opcodes
的用法示例。
在下文中一共展示了Opcodes.ACONST_NULL属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: insert
private void insert() {
InsnList trInsns = transformerNode.instructions;
AbstractInsnNode node = trInsns.getLast();
while (true) {
if (node == null)
break;
if (node instanceof LabelNode) {
node = node.getPrevious();
continue;
} else if (node.getOpcode() == Opcodes.RETURN) {
trInsns.remove(node);
} else if (node.getOpcode() == Opcodes.ATHROW && node.getPrevious().getOpcode() == Opcodes.ACONST_NULL) {
AbstractInsnNode prev = node.getPrevious();
trInsns.remove(node);
trInsns.remove(prev);
}
break;
}
resultNode.instructions.insert(trInsns);
}
示例2: isSimpleConstant
private static boolean isSimpleConstant(Object previousInstructionObject) {
// CHECKSTYLE:OFF
final AbstractInsnNode previousInstruction = (AbstractInsnNode) previousInstructionObject;
// CHECKSTYLE:ON
final int opcode = previousInstruction.getOpcode();
return (opcode >= Opcodes.ACONST_NULL && opcode <= Opcodes.DCONST_1
|| opcode == Opcodes.SIPUSH || opcode == Opcodes.BIPUSH)
&& (previousInstruction instanceof InsnNode
|| previousInstruction instanceof IntInsnNode);
}
示例3: visitInsn
/** {@inheritDoc} */
@Override
public void visitInsn(int opcode) {
// ces opcodes sont ceux possibles pour une initialisation inutile
lastInstructionIsInitConstant = opcode == Opcodes.ACONST_NULL
|| opcode == Opcodes.ICONST_0 || opcode == Opcodes.LCONST_0
|| opcode == Opcodes.FCONST_0 || opcode == Opcodes.DCONST_0;
}
示例4: onMethodEnter
protected void onMethodEnter() {
if (done || ! isSynchronized()) return;
has_monitor_operation = true;
super.visitInsn(Opcodes.ACONST_NULL);
super.pop();
methodStartLabel = super.mark();
super.visitMethodInsn(Opcodes.INVOKESTATIC, className, LOG_INTERNAL_ENTER_METHOD, LOG_CLASS_SIGNATURE);
}