}
dupLabel = labelCopyMap.get(tsin.dflt);
assert dupLabel != null;
lastInsn = new TableSwitchInsnNode(tsin.min, tsin.max, dupLabel, labels);
} else if (opcode == LOOKUPSWITCH) {
LookupSwitchInsnNode lsin = (LookupSwitchInsnNode) lastInsn;
Label[] labels = new Label[lsin.labels.size()];
for (i = 0; i < labels.length; i++) {
dupLabel = labelCopyMap.get(lsin.labels.get(i));
assert dupLabel != null;
labels[i] = dupLabel;
}
dupLabel = labelCopyMap.get(lsin.dflt);
assert dupLabel != null;
int[] keys = new int[lsin.keys.size()];
for (i = 0; i < keys.length; i++) {
keys[i] = (Integer) lsin.keys.get(i);
}
lastInsn = new LookupSwitchInsnNode(dupLabel, keys, labels);
}
instructions.add(lastInsn);
// new handlers
dup.handlers = new ArrayList<Handler>(orig.handlers.size());
if (orig.handlers.size() > 0) {