[Top][All Lists]
[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;
}
- [cp-patches] Patch: minor Collection.toArray usage improvement,
Anthony Green <=