private void saveInstructionsToOwner()

in instrumentation/src/com/intellij/rt/coverage/instrumentation/CoverageEnumeratorWithInstructions.java [51:96]


  private void saveInstructionsToOwner() {
    final LineData lineData = myData.getLineData(myCurrentLine);
    if (myInstructionCounter > 0 && lineData != null) {
      final Jump jump = myLastJump != null ? myLastJump : (myLastLabel == null ? null : myOriginalLabelToJump.get(myLastLabel));
      final Switch aSwitch = myLastLabel == null ? null : myOriginalLabelToSwitch.get(myLastLabel);

      boolean applied = false;

      if (jump != null) {
        final int jumpId = jump.getId();
        for (int index = 0; index < lineData.jumpsCount(); index++) {
          final JumpData jumpData = lineData.getJumpData(index);
          if (jumpData.getId(true) == jumpId) {
            myData.addInstructions(jumpId, myInstructionCounter);
            applied = true;
            break;
          }

          if (jumpData.getId(false) == jumpId) {
            myData.addInstructions(jumpId, myInstructionCounter);
            applied = true;
            break;
          }
        }
      } else if (aSwitch != null) {
        final int switchId = aSwitch.getId();
        loop:
        for (int index = 0; index < lineData.switchesCount(); index++) {
          final SwitchData switchData = lineData.getSwitchData(index);
          for (int i = -1; i < switchData.getKeys().length; i++) {
            if (switchData.getId(i) == switchId) {
              myData.addInstructions(switchId, myInstructionCounter);
              applied = true;
              break loop;
            }
          }
        }
      }
      if (!applied) {
        myData.addInstructions(lineData.getId(), myInstructionCounter);
      }
    }
    myLastLabel = null;
    myLastJump = null;
    myInstructionCounter = 0;
  }