diff options
author | Romain Guy <romainguy@google.com> | 2011-06-16 16:13:01 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2011-06-16 16:13:01 -0700 |
commit | 5d5d1ff2d5daadec48c6c95e86d6d644390c02e6 (patch) | |
tree | 92583bc3c8f5489be266e8eb544832e99233d682 | |
parent | d6f69d0e5235a5adce5226d2144ef08d05b1889c (diff) | |
download | frameworks_base-5d5d1ff2d5daadec48c6c95e86d6d644390c02e6.zip frameworks_base-5d5d1ff2d5daadec48c6c95e86d6d644390c02e6.tar.gz frameworks_base-5d5d1ff2d5daadec48c6c95e86d6d644390c02e6.tar.bz2 |
Prevent TweetDeck from crashing.
Change-Id: I964d9152010060c3a2698cdb6c22ac21da1af8b0
-rw-r--r-- | core/java/android/util/FinitePool.java | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/core/java/android/util/FinitePool.java b/core/java/android/util/FinitePool.java index 4ae21ad..b30f2bf 100644 --- a/core/java/android/util/FinitePool.java +++ b/core/java/android/util/FinitePool.java @@ -20,6 +20,8 @@ package android.util; * @hide */ class FinitePool<T extends Poolable<T>> implements Pool<T> { + private static final String LOG_TAG = "FinitePool"; + /** * Factory used to create new pool objects */ @@ -77,15 +79,16 @@ class FinitePool<T extends Poolable<T>> implements Pool<T> { } public void release(T element) { - if (element.isPooled()) { - throw new IllegalArgumentException("Element already in the pool."); - } - if (mInfinite || mPoolCount < mLimit) { - mPoolCount++; - element.setNextPoolable(mRoot); - element.setPooled(true); - mRoot = element; + if (!element.isPooled()) { + if (mInfinite || mPoolCount < mLimit) { + mPoolCount++; + element.setNextPoolable(mRoot); + element.setPooled(true); + mRoot = element; + } + mManager.onReleased(element); + } else { + Log.w(LOG_TAG, "Element is already in pool: " + element); } - mManager.onReleased(element); } } |