blob: f3fc2c2027d2911e52c9a931040b78c6dd633115 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package org.zwobble.couscous.util.asm;
import net.bytebuddy.implementation.Implementation;
import net.bytebuddy.implementation.bytecode.StackManipulation;
import net.bytebuddy.implementation.bytecode.StackSize;
import net.bytebuddy.jar.asm.Label;
import net.bytebuddy.jar.asm.MethodVisitor;
public class StackManipulationLookupTable implements StackManipulation {
private final Label dflt;
private final int[] keys;
private final Label[] labels;
public StackManipulationLookupTable(Label dflt, int[] keys, Label[] labels) {
this.dflt = dflt;
this.keys = keys;
this.labels = labels;
}
@Override
public boolean isValid() {
return true;
}
@Override
public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext) {
methodVisitor.visitLookupSwitchInsn(dflt, keys, labels);
return StackSize.SINGLE.toDecreasingSize();
}
}
|