classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] Patch: minor Collection.toArray usage improvement


From: Anthony Green
Subject: [cp-patches] Patch: minor Collection.toArray usage improvement
Date: Sat, 17 Sep 2005 18:43:32 -0700

If the array passed to Collection.toArray(Object[]) isn't big enough,
then it will use reflection to allocate an appropriate array of the
right type.   Classpath contains a number of instances where we're
passing new zero-length arrays.  We can eliminate the extra allocation
and reflection use as follows...

Ok?

AG


2005-09-17  Anthony Green  <address@hidden>

        * java/security/Security.java (getProviders): Pre-allocate the
        target array for Collection.toArray call.
        * gnu/java/security/PolicyFile.java (parse): Ditto.
        * javax/swing/filechooser/FileSystemView.java: Ditto.
        * javax/swing/JFileChooser.java (getChoosableFileFilters): Ditto.


Index: gnu/java/security/PolicyFile.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/security/PolicyFile.java,v
retrieving revision 1.6
diff -u -r1.6 PolicyFile.java
--- gnu/java/security/PolicyFile.java   12 Aug 2005 16:11:31 -0000      1.6
+++ gnu/java/security/PolicyFile.java   18 Sep 2005 01:30:47 -0000
@@ -533,7 +533,7 @@
                 if (clazz == null)
                   {
                     currentPerms.add(new UnresolvedPermission(className,
-                      null, null, (Certificate[]) currentCerts.toArray(new 
Certificate[0])));
+                     null, null, (Certificate[]) currentCerts.toArray(new 
Certificate[currentCerts.size()])));
                     continue;
                   }
                 try
@@ -555,7 +555,7 @@
                 if (clazz == null)
                   {
                     currentPerms.add(new UnresolvedPermission(className,
-                      target, null, (Certificate[]) currentCerts.toArray(new 
Certificate[0])));
+                     target, null, (Certificate[]) currentCerts.toArray(new 
Certificate[currentCerts.size()])));
                     continue;
                   }
                 try
@@ -598,7 +598,7 @@
             if (clazz == null)
               {
                 currentPerms.add(new UnresolvedPermission(className,
-                  target, action, (Certificate[]) currentCerts.toArray(new 
Certificate[0])));
+                 target, action, (Certificate[]) currentCerts.toArray(new 
Certificate[currentCerts.size()])));
                 continue;
               }
             else
Index: java/security/Security.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/security/Security.java,v
retrieving revision 1.36
diff -u -r1.36 Security.java
--- java/security/Security.java 2 Jul 2005 20:32:40 -0000       1.36
+++ java/security/Security.java 18 Sep 2005 01:32:17 -0000
@@ -1,5 +1,5 @@
 /* Security.java --- Java base security class implementation
-   Copyright (C) 1999, 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005  Free Software Foundation, 
Inc.
 
 This file is part of GNU Classpath.
 
@@ -651,7 +651,7 @@
     if (result.isEmpty())
       return null;
 
-    return (Provider[]) result.toArray(new Provider[0]);
+    return (Provider[]) result.toArray(new Provider[result.size()]);
   }
 
   private static void selectProviders(String svc, String algo, String attr,
Index: javax/swing/JFileChooser.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/JFileChooser.java,v
retrieving revision 1.15
diff -u -r1.15 JFileChooser.java
--- javax/swing/JFileChooser.java       5 Sep 2005 14:05:28 -0000       1.15
+++ javax/swing/JFileChooser.java       18 Sep 2005 01:32:59 -0000
@@ -715,7 +715,7 @@
    */
   public FileFilter[] getChoosableFileFilters()
   {
-    return (FileFilter[]) choosableFilters.toArray(new FileFilter[0]);
+    return (FileFilter[]) choosableFilters.toArray(new 
FileFilter[choosableFilters.size()]);
   }
 
   /**
Index: javax/swing/filechooser/FileSystemView.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/javax/swing/filechooser/FileSystemView.java,v
retrieving revision 1.7
diff -u -r1.7 FileSystemView.java
--- javax/swing/filechooser/FileSystemView.java 14 Sep 2005 16:52:08 -0000      
1.7
+++ javax/swing/filechooser/FileSystemView.java 18 Sep 2005 01:33:15 -0000
@@ -143,7 +143,7 @@
     for (int i = 0; i < files.length; i++)
       if (! files[i].isHidden())
        trim.add(files[i]);
-    File[] value = (File[]) trim.toArray(new File[0]);
+    File[] value = (File[]) trim.toArray(new File[trim.size()]);
     return value;
   }
 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]