本文整理匯總了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);
}