summaryrefslogtreecommitdiffstats
path: root/bcel-builder
diff options
context:
space:
mode:
authoraclement <aclement>2008-06-23 02:06:22 +0000
committeraclement <aclement>2008-06-23 02:06:22 +0000
commit260bff8874f58878a70fe136157c520f013f1456 (patch)
tree6be9af631b3319172d5614e040379f5f33e47b3f /bcel-builder
parent109e942934c1192c433736cd03392a9f2023f4c6 (diff)
downloadaspectj-260bff8874f58878a70fe136157c520f013f1456.tar.gz
aspectj-260bff8874f58878a70fe136157c520f013f1456.zip
MEMORY: Don't create unnecessary empty string arrays for implemented interfaces
Diffstat (limited to 'bcel-builder')
-rw-r--r--bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java
index 8083441f6..bf5ad504a 100644
--- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java
+++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java
@@ -77,7 +77,7 @@ import java.util.StringTokenizer;
* class file. Those interested in programatically generating classes
* should see the <a href="../generic/ClassGen.html">ClassGen</a> class.
- * @version $Id: JavaClass.java,v 1.10 2008/05/28 23:53:02 aclement Exp $
+ * @version $Id: JavaClass.java,v 1.11 2008/06/23 02:06:22 aclement Exp $
* @see org.aspectj.apache.bcel.generic.ClassGen
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
@@ -117,6 +117,8 @@ public class JavaClass extends Modifiers implements Cloneable, Node {
private Signature signatureAttribute = null;
private boolean searchedForSignatureAttribute = false;
+ private static final String[] NO_INTERFACE_NAMES = new String[]{};
+
/**
* In cases where we go ahead and create something,
* use the default SyntheticRepository, because we
@@ -202,10 +204,14 @@ public class JavaClass extends Modifiers implements Cloneable, Node {
else
superclass_name = "java.lang.Object";
- interface_names = new String[interfaces.length];
- for(int i=0; i < interfaces.length; i++) {
- String str = constant_pool.getConstantString(interfaces[i], Constants.CONSTANT_Class);
- interface_names[i] = Utility.compactClassName(str, false);
+ if (interfaces.length==0) {
+ interface_names = NO_INTERFACE_NAMES;
+ } else {
+ interface_names = new String[interfaces.length];
+ for(int i=0; i < interfaces.length; i++) {
+ String str = constant_pool.getConstantString(interfaces[i], Constants.CONSTANT_Class);
+ interface_names[i] = Utility.compactClassName(str, false);
+ }
}
}