summaryrefslogtreecommitdiffstats
path: root/core/java/android/util
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-06-16 16:14:06 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-06-16 16:14:06 -0700
commitbec9be2f513617a35988a1cd225afd8f1f513867 (patch)
treebf6ea7b650aafd54759295f8273852a8e5723209 /core/java/android/util
parent29ddc3bc2730fefdd51ac54f9838c67742a270ed (diff)
parent5d5d1ff2d5daadec48c6c95e86d6d644390c02e6 (diff)
downloadframeworks_base-bec9be2f513617a35988a1cd225afd8f1f513867.zip
frameworks_base-bec9be2f513617a35988a1cd225afd8f1f513867.tar.gz
frameworks_base-bec9be2f513617a35988a1cd225afd8f1f513867.tar.bz2
Merge "Prevent TweetDeck from crashing."
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);
}
}