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 2021/09/04 06:11:45 UTC

[groovy] 01/01: GROOVY-9513: Ensure enabling indy by default

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

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

commit d43bc6812cd9b35edaae6e5f59a6bc3b00c00bb8
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Jun 27 23:31:58 2021 +0800

    GROOVY-9513: Ensure enabling indy by default
---
 .../java/org/codehaus/groovy/classgen/asm/WriterController.java    | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java b/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
index d5a59e1..0faf5b6 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
@@ -81,18 +81,19 @@ public class WriterController {
     public void init(final AsmClassGenerator asmClassGenerator, final GeneratorContext gcon, final ClassVisitor cv, final ClassNode cn) {
         CompilerConfiguration config = cn.getCompileUnit().getConfig();
         Map<String,Boolean> optOptions = config.getOptimizationOptions();
-        boolean invokedynamic = false;
+        boolean invokedynamic = true;
         if (optOptions.isEmpty()) {
             // IGNORE
         } else if (Boolean.FALSE.equals(optOptions.get("all"))) {
+            invokedynamic = false;
             this.optimizeForInt = false;
             // set other optimizations options to false here
         } else {
-            if (config.isIndyEnabled()) invokedynamic = true;
+            if (!config.isIndyEnabled()) invokedynamic = false;
             if (Boolean.FALSE.equals(optOptions.get("int"))) this.optimizeForInt = false;
-            if (invokedynamic) this.optimizeForInt = false;
             // set other optimizations options to false here
         }
+        if (invokedynamic) this.optimizeForInt = false;
         this.classNode = cn;
         this.outermostClass = null;
         this.internalClassName = BytecodeHelper.getClassInternalName(cn);