Fix crash when spamming taps during reordering

This commit is contained in:
vfsfitvnm
2022-09-05 17:58:39 +02:00
parent b50c54b1ed
commit 2d94b06fc2

View File

@@ -21,18 +21,18 @@ class AnimatablesPool<T, V : AnimationVector>(
require(size > 0) require(size > 0)
} }
suspend fun acquire(): Animatable<T, V> { suspend fun acquire(): Animatable<T, V>? {
return mutex.withLock { return mutex.withLock {
require(values.isNotEmpty()) if (values.isNotEmpty()) values.removeFirst() else null
values.removeFirst()
} }
} }
suspend fun release(animatable: Animatable<T, V>) { suspend fun release(animatable: Animatable<T, V>) {
mutex.withLock { mutex.withLock {
require(values.size < size) if (values.size < size) {
animatable.snapTo(initialValue) animatable.snapTo(initialValue)
values.add(animatable) values.add(animatable)
}
} }
} }
} }