aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java')
-rw-r--r--src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java b/src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java
new file mode 100644
index 0000000..186c752
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/util/asm/StackManipulationFrame.java
@@ -0,0 +1,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();
+ }
+}