You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sj...@apache.org on 2008/07/09 15:26:31 UTC
svn commit: r675164 -
/harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java
Author: sjanuary
Date: Wed Jul 9 06:26:31 2008
New Revision: 675164
URL: http://svn.apache.org/viewvc?rev=675164&view=rev
Log:
Apply patch for HARMONY-5902 ([classlib][pack200] ClassConstantPool overuses ArrayLists)
Modified:
harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java
Modified: harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java?rev=675164&r1=675163&r2=675164&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java (original)
+++ harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java Wed Jul 9 06:26:31 2008
@@ -114,14 +114,24 @@
private void addNested(List classFileEntries) {
List newEntries = new ArrayList();
- for (Iterator iterator = classFileEntries.iterator(); iterator
- .hasNext();) {
- ClassFileEntry entry = (ClassFileEntry) iterator.next();
+
+ for (int classFileIndex = 0; classFileIndex < classFileEntries.size(); classFileIndex++) {
+ ClassFileEntry entry = (ClassFileEntry) classFileEntries.get(classFileIndex);
ClassFileEntry[] nestedEntries = entry.getNestedClassFileEntries();
- newEntries.addAll(Arrays.asList(nestedEntries));
+
+ // Add all nestedEntries to the newEntries list
+ for(int nestedEntriesIndex = 0; nestedEntriesIndex < nestedEntries.length; nestedEntriesIndex++) {
+ newEntries.add(nestedEntries[nestedEntriesIndex]);
+ }
+
+ // If the entry is a bytecode that needs to start the
+ // class pool, add all the nestedEntries to the
+ // mustStartClassPool as well.
if(entry instanceof ByteCode) {
if(((ByteCode)entry).nestedMustStartClassPool()) {
- mustStartClassPool.addAll(Arrays.asList(nestedEntries));
+ for(int nestedEntriesIndex = 0; nestedEntriesIndex < nestedEntries.length; nestedEntriesIndex++) {
+ mustStartClassPool.add(nestedEntries[nestedEntriesIndex]);
+ }
}
}
}