From 0e6156e51c3d59a90eb80e10ee3aacdd6d6f0247 Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 13 Feb 2023 18:07:08 +0800 Subject: [PATCH] Only do mapping based rewrite for archive reading, prepare for cleanup mmaped decode usage --- app/src/main/java/com/hippo/UriArchiveAccessor.kt | 1 + app/src/main/java/com/hippo/image/Image.kt | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/hippo/UriArchiveAccessor.kt b/app/src/main/java/com/hippo/UriArchiveAccessor.kt index 67635d98f..804ab69d4 100644 --- a/app/src/main/java/com/hippo/UriArchiveAccessor.kt +++ b/app/src/main/java/com/hippo/UriArchiveAccessor.kt @@ -44,6 +44,7 @@ class UriArchiveAccessor(ctx: Context, uri: Uri) { val buffer = extractToByteBuffer(index) buffer ?: return null check(buffer.isDirect) + Image.rewriteGifSource(buffer) return object : Image.ByteBufferSource { override fun getByteBuffer(): ByteBuffer { return buffer diff --git a/app/src/main/java/com/hippo/image/Image.kt b/app/src/main/java/com/hippo/image/Image.kt index 96eead118..93e208455 100644 --- a/app/src/main/java/com/hippo/image/Image.kt +++ b/app/src/main/java/com/hippo/image/Image.kt @@ -93,8 +93,6 @@ class Image private constructor(source: Source, private var src: ByteBufferSourc @JvmStatic fun decode(src: ByteBufferSource): Image? { val directBuffer = src.getByteBuffer() - check(directBuffer.isDirect) - rewriteGifSource(directBuffer) return runCatching { Image(ImageDecoder.createSource(directBuffer), src) }.onFailure { @@ -104,7 +102,7 @@ class Image private constructor(source: Source, private var src: ByteBufferSourc } @JvmStatic - private external fun rewriteGifSource(buffer: ByteBuffer) + external fun rewriteGifSource(buffer: ByteBuffer) } interface ByteBufferSource : AutoCloseable {