/** * Processing information about new line. * * <p>Upgrades {@link #replyEventIdList} and {@link #saveEventIdList} and calls {@link * TouchPointListener#afterLineNumber(int, Label, int, MethodVisitor, String, String)} */ public void visitLineNumber(int line, Label label) { super.visitLineNumber(line, label); currentLine = line; if (!isDuplicatedLine(line, lastLineId)) { /* * It is a new line (first time seen, so we will save all found * events) */ replyEventIdList = null; saveEventIdList = new LinkedList<Integer>(); Map<Integer, LinkedList<Integer>> eventsMap = line2eventIds.get(line); if (eventsMap == null) { eventsMap = new HashMap<Integer, LinkedList<Integer>>(); line2eventIds.put(line, eventsMap); } eventsMap.put(lastLineId, saveEventIdList); } else { Integer orgin = getOriginForLine(line, lastLineId); Map<Integer, LinkedList<Integer>> m = line2eventIds.get(currentLine); LinkedList<Integer> eventIds = m.get(orgin); /* copy of current list */ replyEventIdList = new LinkedList<Integer>(eventIds); saveEventIdList = null; } touchPointListener.afterLineNumber( getEventId(), label, currentLine, mv, methodName, methodSignature); }