public void visitTableSwitchInsn(int min, int max, Label dflt, Label[] labels) { super.visitTableSwitchInsn(min, max, dflt, labels); if (currentLine != 0) { switchTargetLabels.put(dflt, new SwitchHolder(currentLine, currentSwitch, -1)); for (int i = labels.length -1; i >=0; i--) switchTargetLabels.put(labels[i], new SwitchHolder(currentLine, currentSwitch, i)); classData.addLineSwitch(currentLine, currentSwitch++, min, max); } }
public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) { super.visitLookupSwitchInsn(dflt, keys, labels); if (currentLine != 0) { switchTargetLabels.put(dflt, new SwitchHolder(currentLine, currentSwitch, -1)); for (int i = labels.length -1; i >=0; i--) switchTargetLabels.put(labels[i], new SwitchHolder(currentLine, currentSwitch, i)); classData.addLineSwitch(currentLine, currentSwitch++, keys); } }
public void putSwitchTouchPoint(int classLine, int maxBranches, int... counterIds) { updateLine(classLine); LineData ld = getOrCreateLine(classLine); int switchId = switchesInLine++; classData.addLineSwitch(classLine, switchId, 0, counterIds.length - 2, maxBranches); for (int i = 0; i < counterIds.length; i++) { ld.touchSwitch(switchId, i - 1, res[counterIds[i]]); } }
public void putSwitchTouchPoint(int classLine, int maxBranches, int... counterIds) { updateLine(classLine); LineData ld = getOrCreateLine(classLine); int switchId = switchesInLine++; classData.addLineSwitch(classLine, switchId, 0, counterIds.length - 2, maxBranches); for (int i = 0; i < counterIds.length; i++) { ld.touchSwitch(switchId, i - 1, res[counterIds[i]]); } }
.getCountersForLabelsCnt(); classData.addLineSwitch(tpd.getLineNumber(), toucesInLine++, 0, countersCnt - 2, Integer.MAX_VALUE);
.getCountersForLabelsCnt(); classData.addLineSwitch(tpd.getLineNumber(), toucesInLine++, 0, countersCnt - 2, Integer.MAX_VALUE);
result.addLineSwitch( lld.getLineNumber(), i, 0, 0 ); long[] prevBranchHits = new long[ lsd.getNumberOfValidBranches() - 1]; long prevDefaultHits = 0;