diff options
author | aclement <aclement> | 2008-06-23 02:06:22 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-06-23 02:06:22 +0000 |
commit | 260bff8874f58878a70fe136157c520f013f1456 (patch) | |
tree | 6be9af631b3319172d5614e040379f5f33e47b3f /bcel-builder | |
parent | 109e942934c1192c433736cd03392a9f2023f4c6 (diff) | |
download | aspectj-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.java | 16 |
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); + } } } |