@Override
 public void accept(final MethodVisitor mv) {
   int[] keys = new int[this.keys.size()];
   for (int i = 0; i < keys.length; ++i) {
     keys[i] = this.keys.get(i).intValue();
   }
   Label[] labels = new Label[this.labels.size()];
   for (int i = 0; i < labels.length; ++i) {
     labels[i] = this.labels.get(i).getLabel();
   }
   mv.visitLookupSwitchInsn(dflt.getLabel(), keys, labels);
 }
Example #2
0
 @Override
 public void visitLookupSwitchInsn(final Label dflt, final int[] keys,
         final Label[] labels) {
     checkEndCode();
     checkStartCode();
     checkLabel(dflt, false, "default label");
     checkNonDebugLabel(dflt);
     if (keys == null || labels == null || keys.length != labels.length) {
         throw new IllegalArgumentException(
                 "There must be the same number of keys and labels");
     }
     for (int i = 0; i < labels.length; ++i) {
         checkLabel(labels[i], false, "label at index " + i);
         checkNonDebugLabel(labels[i]);
     }
     super.visitLookupSwitchInsn(dflt, keys, labels);
     usedLabels.add(dflt);
     for (Label label : labels) {
         usedLabels.add(label);
     }
     ++insnCount;
 }