summaryrefslogtreecommitdiffstats
path: root/core/java/android/util
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-06-16 16:13:01 -0700
committerRomain Guy <romainguy@google.com>2011-06-16 16:13:01 -0700
commit5d5d1ff2d5daadec48c6c95e86d6d644390c02e6 (patch)
tree92583bc3c8f5489be266e8eb544832e99233d682 /core/java/android/util
parentd6f69d0e5235a5adce5226d2144ef08d05b1889c (diff)
downloadframeworks_base-5d5d1ff2d5daadec48c6c95e86d6d644390c02e6.zip
frameworks_base-5d5d1ff2d5daadec48c6c95e86d6d644390c02e6.tar.gz
frameworks_base-5d5d1ff2d5daadec48c6c95e86d6d644390c02e6.tar.bz2
Prevent TweetDeck from crashing.
Change-Id: I964d9152010060c3a2698cdb6c22ac21da1af8b0
Diffstat (limited to 'core/java/android/util')
-rw-r--r--core/java/android/util/FinitePool.java21
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);
}
}