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 2018/03/21 00:34:28 UTC

groovy git commit: Make generated closure classes final

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_5_X a59372b5c -> 56201b748


Make generated closure classes final


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/56201b74
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/56201b74
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/56201b74

Branch: refs/heads/GROOVY_2_5_X
Commit: 56201b7488c4071b9e0581dc83170a1c65f1ae65
Parents: a59372b
Author: sunlan <su...@apache.org>
Authored: Wed Mar 21 08:23:49 2018 +0800
Committer: sunlan <su...@apache.org>
Committed: Wed Mar 21 08:23:49 2018 +0800

----------------------------------------------------------------------
 src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/56201b74/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
index 148567b..60fe447 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
@@ -52,6 +52,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import static org.objectweb.asm.Opcodes.ACC_FINAL;
 import static org.objectweb.asm.Opcodes.ACC_PRIVATE;
 import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
 import static org.objectweb.asm.Opcodes.ACC_STATIC;
@@ -89,7 +90,7 @@ public class ClosureWriter {
 
         // generate closure as public class to make sure it can be properly invoked by classes of the
         // Groovy runtime without circumventing JVM access checks (see CachedMethod for example).
-        int mods = ACC_PUBLIC;
+        int mods = ACC_PUBLIC | ACC_FINAL;
         if (classNode.isInterface()) {
             mods |= ACC_STATIC;
         }