]> source.dussan.org Git - aspectj.git/commitdiff
MEMORY: Don't create unnecessary empty string arrays for implemented interfaces
authoraclement <aclement>
Mon, 23 Jun 2008 02:06:22 +0000 (02:06 +0000)
committeraclement <aclement>
Mon, 23 Jun 2008 02:06:22 +0000 (02:06 +0000)
bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java

index 8083441f64bb701adb71a723bf225f5c9c143071..bf5ad504a8c73a93c5f3ef6235039a0efcd5e88a 100644 (file)
@@ -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);
+           }
     }
   }