diff options
author | Xavier Ducrohet <xav@android.com> | 2011-02-23 18:32:10 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-02-23 18:32:10 -0800 |
commit | 8ee31a0a93c583cac347dcc69c8dc71c0507774d (patch) | |
tree | b6075973fcaeabaa8cf49980ee8033a14a8ef6b3 | |
parent | e4ce73763de01a6d3e0281ad90f6eca08d455f10 (diff) | |
parent | b2c7dd5986344369f02dfe2965b309153b121127 (diff) | |
download | frameworks_base-8ee31a0a93c583cac347dcc69c8dc71c0507774d.zip frameworks_base-8ee31a0a93c583cac347dcc69c8dc71c0507774d.tar.gz frameworks_base-8ee31a0a93c583cac347dcc69c8dc71c0507774d.tar.bz2 |
Merge "LayoutLib: downsize the SparseArray when possible."
-rw-r--r-- | tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java index 22f1609..4d0c9ce 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java @@ -119,8 +119,6 @@ public class SparseWeakArray<E> { } private void gc() { - // Log.e("SparseArray", "gc start with " + mSize); - int n = mSize; int o = 0; int[] keys = mKeys; @@ -144,7 +142,17 @@ public class SparseWeakArray<E> { mGarbage = false; mSize = o; - // Log.e("SparseArray", "gc end with " + mSize); + int newSize = ArrayUtils.idealIntArraySize(mSize); + if (newSize < mKeys.length) { + int[] nkeys = new int[newSize]; + WeakReference<?>[] nvalues = new WeakReference[newSize]; + + System.arraycopy(mKeys, 0, nkeys, 0, newSize); + System.arraycopy(mValues, 0, nvalues, 0, newSize); + + mKeys = nkeys; + mValues = nvalues; + } } /** |