This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 7c36e32 GROOVY-9076: add NOP bytecode for debugger to support "step
into"
7c36e32 is described below
commit 7c36e32ec47bc04c7474252b151e3adc96e0a06a
Author: Eric Milles <[email protected]>
AuthorDate: Mon Dec 14 13:13:49 2020 -0600
GROOVY-9076: add NOP bytecode for debugger to support "step into"
---
.../java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
index b99ffe5..be857db 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
@@ -59,6 +59,7 @@ import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
import static org.objectweb.asm.Opcodes.INVOKESTATIC;
import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
import static org.objectweb.asm.Opcodes.NEW;
+import static org.objectweb.asm.Opcodes.NOP;
import static org.objectweb.asm.Opcodes.PUTSTATIC;
import static org.objectweb.asm.Opcodes.RETURN;
@@ -88,7 +89,7 @@ public class CallSiteWriter {
private static final int
MOD_PRIVSS = ACC_PRIVATE+ACC_STATIC+ACC_SYNTHETIC,
MOD_PUBSS = ACC_PUBLIC+ACC_STATIC+ACC_SYNTHETIC;
- private static final ClassNode CALLSITE_ARRAY_NODE =
ClassHelper.make(CallSite[].class);
+ private static final ClassNode CALLSITE_ARRAY_TYPE =
ClassHelper.make(CallSite[].class);
private static final String
GET_CALLSITE_METHOD = "$getCallSiteArray",
CALLSITE_CLASS =
"org/codehaus/groovy/runtime/callsite/CallSite",
@@ -117,9 +118,11 @@ public class CallSiteWriter {
public void makeSiteEntry() {
if (controller.isNotClinit()) {
- controller.getMethodVisitor().visitMethodInsn(INVOKESTATIC,
controller.getInternalClassName(), GET_CALLSITE_METHOD, GET_CALLSITE_DESC,
false);
- controller.getOperandStack().push(CALLSITE_ARRAY_NODE);
- callSiteArrayVarIndex =
controller.getCompileStack().defineTemporaryVariable("$local$callSiteArray",
CALLSITE_ARRAY_NODE, true);
+ MethodVisitor mv = controller.getMethodVisitor();
+ mv.visitInsn(NOP); // GROOVY-9076: need this for debugger to
support step into
+ mv.visitMethodInsn(INVOKESTATIC,
controller.getInternalClassName(), GET_CALLSITE_METHOD, GET_CALLSITE_DESC,
false);
+ controller.getOperandStack().push(CALLSITE_ARRAY_TYPE);
+ callSiteArrayVarIndex =
controller.getCompileStack().defineTemporaryVariable("$local$callSiteArray",
CALLSITE_ARRAY_TYPE, true);
}
}