private void reallyGenerateSwitch(MethodVisitor mv, Label[] labels, Map<Label, ReportingPlace> label2Place) {
      Label afterSwitch = new Label();
      mv.visitVarInsn(ILOAD, 0);
      mv.visitTableSwitchInsn(0, labels.length - 1 , labels[0], labels);

      for (Map.Entry<Label, ReportingPlace> entry : label2Place.entrySet()) {
        mv.visitLabel(entry.getKey());
        generateCaseBody(getSwitchedValue(entry.getValue()));
        mv.visitJumpInsn(GOTO, afterSwitch);
      }

      mv.visitLabel(afterSwitch);
    }
private void reallyGenerateSwitch(MethodVisitor mv, Label[] labels, Map<Label, ReportingPlace> label2Place)