You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2022/12/14 01:12:39 UTC

[groovy] branch danielsun/tweak_pga updated: Compute the max stack size and the max number of local variables automatically

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch danielsun/tweak_pga
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/danielsun/tweak_pga by this push:
     new 105f2eae93 Compute the max stack size and the max number of local variables automatically
105f2eae93 is described below

commit 105f2eae93a26cefcb04e7b44aac46a4a080a5ab
Author: Daniel Sun <su...@apache.org>
AuthorDate: Wed Dec 14 09:12:21 2022 +0800

    Compute the max stack size and the max number of local variables automatically
---
 src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java   | 6 +++---
 src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java  | 4 ++--
 .../src/main/java/org/codehaus/groovy/ant/VerifyClass.java          | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 98cc628652..b209df0b1e 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -1514,7 +1514,7 @@ public class AsmClassGenerator extends ClassGenerator {
             mv.visitFieldInsn(PUTSTATIC,controller.getInternalClassName(),staticFieldName,"Ljava/lang/Class;");
             mv.visitLabel(l0);
             mv.visitInsn(ARETURN);
-            mv.visitMaxs(0,0);
+            mv.visitMaxs(0, 0);
             mv.visitEnd();
         }
 
@@ -1536,7 +1536,7 @@ public class AsmClassGenerator extends ClassGenerator {
         mv.visitMethodInsn(INVOKESPECIAL, "java/lang/NoClassDefFoundError", "<init>", "(Ljava/lang/String;)V", false);
         mv.visitInsn(ATHROW);
         mv.visitTryCatchBlock(l0, l2, l2, "java/lang/ClassNotFoundException"); // br using l2 as the 2nd param seems create the right table entry
-        mv.visitMaxs(3, 2);
+        mv.visitMaxs(0, 0);
     }
 
     @Override
@@ -1956,7 +1956,7 @@ public class AsmClassGenerator extends ClassGenerator {
                     }
                     operandStack.remove(methodBlockSize);
                     mv.visitInsn(RETURN);
-                    mv.visitMaxs(0,0);
+                    mv.visitMaxs(0, 0);
                     mv.visitEnd();
                 }
                 mv = oldMv;
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 4f44cf25d4..374ee9ee5f 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
@@ -191,7 +191,7 @@ public class CallSiteWriter {
                 mv.visitInsn(AASTORE);
             }
             mv.visitInsn(RETURN);
-            mv.visitMaxs(2,1);
+            mv.visitMaxs(0, 0);
             mv.visitEnd();
         }
         // create base createCallSiteArray method
@@ -214,7 +214,7 @@ public class CallSiteWriter {
 
         mv.visitMethodInsn(INVOKESPECIAL, CALLSITE_ARRAY_CLASS, "<init>", "(Ljava/lang/Class;[Ljava/lang/String;)V", false);
         mv.visitInsn(ARETURN);
-        mv.visitMaxs(0,0);
+        mv.visitMaxs(0, 0);
         mv.visitEnd();
     }
 
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/VerifyClass.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/VerifyClass.java
index 63fbca926d..9bf81a1187 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/VerifyClass.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/VerifyClass.java
@@ -138,7 +138,7 @@ public class VerifyClass extends MatchingTask {
                         mv.visitLabel(null);
                     }
                 }
-                mv.visitMaxs(method.maxStack, method.maxLocals);
+                mv.visitMaxs(0, 0);
             }
         }
         return !failed;