@Override public AnnotationVisitor visitInsnAnnotation(int typeRef, TypePath typePath, String desc, boolean visible) { // Finds the last real instruction, i.e. the instruction targeted by // this annotation. AbstractInsnNode insn = instructions.getLast(); while (insn.getOpcode() == -1) { insn = insn.getPrevious(); } // Adds the annotation to this instruction. TypeAnnotationNode an = new TypeAnnotationNode(typeRef, typePath, desc); if (visible) { if (insn.visibleTypeAnnotations == null) { insn.visibleTypeAnnotations = new ArrayList<TypeAnnotationNode>( 1); } insn.visibleTypeAnnotations.add(an); } else { if (insn.invisibleTypeAnnotations == null) { insn.invisibleTypeAnnotations = new ArrayList<TypeAnnotationNode>( 1); } insn.invisibleTypeAnnotations.add(an); } return an; }
AbstractInsnNode previousOfLastInsnNode = lastInsnNode.getPrevious(); if (firstInsnNode.getOpcode() != Opcodes.ALOAD || !(firstInsnNode instanceof VarInsnNode) ||
tmpInsnNode = tmpInsnNode.getPrevious();
for (AbstractInsnNode abstractInsnNode = instructions.getLast(); abstractInsnNode != null; abstractInsnNode = abstractInsnNode.getPrevious()) { if (stackLength.equals(this.selfWillBeStackTopInsnMap.get(abstractInsnNode))) { FieldInsnNode objectModelFieldInsnNode =
if (invokedMethodEntry.isInit()) { boolean matched = false; for (AbstractInsnNode prev = abstractInsnNode.getPrevious(); prev != null; prev = prev.getPrevious()) { if (prev.getOpcode() == Opcodes.NEW && ASM.getInternalName(((TypeInsnNode)prev).desc).equals(methodInsnNode.owner)) {
abstractInsnNode.getPrevious() instanceof MethodInsnNode) { MethodInsnNode prevMethodInsnNode = (MethodInsnNode)abstractInsnNode.getPrevious(); if (prevMethodInsnNode.name.equals("analyze") && prevMethodInsnNode.owner.equals(ASM.getInternalName(QueryTranslatorImpl.class))) {