You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/03/21 22:33:55 UTC
[groovy] branch master updated: partial rollback
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 6b0c320 partial rollback
6b0c320 is described below
commit 6b0c3205a45bf155cd08b77da0848f5cfcfb74c3
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Mon Mar 21 17:18:24 2022 -0500
partial rollback
---
src/main/java/org/codehaus/groovy/ast/ClassNode.java | 15 +++++++++------
.../org/codehaus/groovy/classgen/AsmClassGenerator.java | 2 +-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 0d2903e..a28d219 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -36,7 +36,6 @@ import org.codehaus.groovy.vmplugin.VMPluginFactory;
import java.lang.reflect.Array;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.EnumMap;
import java.util.Iterator;
@@ -696,13 +695,17 @@ public class ClassNode extends AnnotatedNode {
return node;
}
- public void addInterface(ClassNode type) {
+ public void addInterface(final ClassNode type) {
+ assert type != null && type.isInterface();
ClassNode[] interfaces = getInterfaces();
- if (!Arrays.asList(interfaces).contains(type)) {
- interfaces = Arrays.copyOf(interfaces, interfaces.length + 1);
- interfaces[interfaces.length - 1] = type;
- setInterfaces(interfaces);
+ for (ClassNode face : interfaces) {
+ if (face.equals(type)) return;
}
+ final int n = interfaces.length;
+
+ System.arraycopy(interfaces, 0, interfaces = new ClassNode[n + 1], 0, n);
+ interfaces[n] = type; // append interface
+ setInterfaces(interfaces);
}
@Override
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index f8ea12e..7cdfadc 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -1163,7 +1163,7 @@ public class AsmClassGenerator extends ClassGenerator {
}
private static boolean implementsGroovyObject(final ClassNode cn) {
- return cn.isDerivedFromGroovyObject() || (!cn.isInterface() && cn.getCompileUnit() != null);
+ return cn.isDerivedFromGroovyObject() /*|| (!cn.isInterface() && cn.getCompileUnit() != null)*/;
}
@Override