aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java
blob: 186c7524051267a6016a276bfb8ce32beb2ed72d (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
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.MethodVisitor;
import net.bytebuddy.jar.asm.Opcodes;

public class StackManipulationFrame implements StackManipulation {
    public static final StackManipulation SAME = new StackManipulationFrame();

    private StackManipulationFrame() {
    }

    @Override
    public boolean isValid() {
        return true;
    }

    @Override
    public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext) {
        methodVisitor.visitFrame(Opcodes.F_SAME, 0, new Object[0], 0, new Object[0]);
        return StackSize.ZERO.toIncreasingSize();
    }
}