Fix unable to refresh images due to resource leak

This commit is contained in:
FooIbar authored and renovate[bot] committed 2024-04-02 00:38:38 +08:00
1 parent 3a04460926
commit 9569ca774d
1 file changed
+6 -7
@@ -92,7 +92,7 @@ class Image private constructor(image: CoilImage, private val src: AutoCloseable
suspend fun decode(src: ImageSource): Image? {
return runCatching {
when (src) {
val image = when (src) {
is UniFileSource -> {
if (isAtLeastP && !isAtLeastU) {
src.source.openFileDescriptor("rw").use {
@@ -110,20 +110,19 @@ class Image private constructor(image: CoilImage, private val src: AutoCloseable
}
}
}
val image = src.right().decodeCoil()
if (image is BitmapImage) src.close()
Image(image, src)
src.right().decodeCoil()
}
is ByteBufferSource -> {
if (isAtLeastP && !isAtLeastU) {
rewriteGifSource(src.source)
}
val image = src.left().decodeCoil()
if (image is BitmapImage) src.close()
Image(image, src)
src.left().decodeCoil()
}
}
Image(image, src).apply {
if (innerImage is BitmapImage) src.close()
}
}.onFailure {
src.close()
logcat(it)