package me.tomassetti.bytecode_generation;
import me.tomassetti.jvm.JvmTypeCategory;
import org.objectweb.asm.MethodVisitor;
public class LocalVarAssignmentBS extends BytecodeSequence {
private int assignmentTarget;
private JvmTypeCategory jvmTypeCategory;
/**
* @param assignmentTarget the local variable index of the value being assigned
* @param jvmTypeCategory
*/
public LocalVarAssignmentBS(int assignmentTarget, JvmTypeCategory jvmTypeCategory) {
if (assignmentTarget < 0) {
throw new IllegalArgumentException();
}
this.assignmentTarget = assignmentTarget;
this.jvmTypeCategory = jvmTypeCategory;
}
@Override
public void operate(MethodVisitor mv) {
mv.visitVarInsn(jvmTypeCategory.storeOpcode(), assignmentTarget);
}
}