aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/util
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-08-16 11:31:04 +0200
committerSven Gothel <[email protected]>2014-08-16 11:31:04 +0200
commit6de8ace67b26f039fb1c89a3fce4d5f2437c615c (patch)
tree02da4909cf84dcd1d1c4712b7732ff4b78b1d8b4 /src/java/com/jogamp/common/util
parente2be0d00dcd28dc7d6b5df444e2ede80edd7cad5 (diff)
IntIntHashMap: Reduce temp. ArrayList<Entry> instances in clone
Diffstat (limited to 'src/java/com/jogamp/common/util')
-rw-r--r--src/java/com/jogamp/common/util/IntIntHashMap.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/java/com/jogamp/common/util/IntIntHashMap.java b/src/java/com/jogamp/common/util/IntIntHashMap.java
index 954b379..f78b1e0 100644
--- a/src/java/com/jogamp/common/util/IntIntHashMap.java
+++ b/src/java/com/jogamp/common/util/IntIntHashMap.java
@@ -162,18 +162,19 @@ public class /*name*/IntIntHashMap/*name*/ implements Cloneable,
mask, capacity, threshold,
keyNotFoundValue);
+ final ArrayList<Entry> entries = new ArrayList<Entry>();
for(int i=table.length-1; i>=0; i--) {
// single linked list -> ArrayList
- final ArrayList<Entry> entries = new ArrayList<Entry>();
Entry se = table[i];
while(null != se) {
entries.add(se);
se = se.next;
}
// clone ArrayList -> single linked list (bwd)
+ final int count = entries.size();
Entry de_next = null;
- for(int j=entries.size()-1; j>=0; j--) {
- se = entries.get(j);
+ for(int j=count-1; j>=0; j--) {
+ se = entries.remove(j);
if( isPrimitive ) {
de_next = new Entry(se.key, se.value, de_next);
} else {