summaryrefslogtreecommitdiffstats
path: root/core/java/android/util/FinitePool.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/util/FinitePool.java')
-rw-r--r--core/java/android/util/FinitePool.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/java/android/util/FinitePool.java b/core/java/android/util/FinitePool.java
index 3ef8293..4ae21ad 100644
--- a/core/java/android/util/FinitePool.java
+++ b/core/java/android/util/FinitePool.java
@@ -69,6 +69,7 @@ class FinitePool<T extends Poolable<T>> implements Pool<T> {
if (element != null) {
element.setNextPoolable(null);
+ element.setPooled(false);
mManager.onAcquired(element);
}
@@ -76,9 +77,13 @@ 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;
}
mManager.onReleased(element);