diff --git a/src/all/hitomi/build.gradle b/src/all/hitomi/build.gradle index 70924cede..64d9f466d 100644 --- a/src/all/hitomi/build.gradle +++ b/src/all/hitomi/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Hitomi' extClass = '.HitomiFactory' - extVersionCode = 40 + extVersionCode = 41 isNsfw = true } diff --git a/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/Hitomi.kt b/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/Hitomi.kt index 42a540e2b..0340de977 100644 --- a/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/Hitomi.kt +++ b/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/Hitomi.kt @@ -32,6 +32,7 @@ import java.nio.ByteBuffer import java.nio.ByteOrder import java.security.MessageDigest import java.text.SimpleDateFormat +import java.util.LinkedHashSet import java.util.LinkedList import java.util.Locale import kotlin.math.min @@ -308,8 +309,6 @@ class Hitomi( val inbuf = getRangedResponse(url, offset.until(offset + length)) - val galleryIDs = mutableSetOf() - val buffer = ByteBuffer .wrap(inbuf) @@ -326,6 +325,9 @@ class Hitomi( "inbuf.byteLength ${inbuf.size} != expected_length $expectedLength" } + // we know total number so avoid internal resize overhead + val galleryIDs = LinkedHashSet(numberOfGalleryIDs, 1.0f) + for (i in 0.until(numberOfGalleryIDs)) galleryIDs.add(buffer.int) @@ -404,12 +406,16 @@ class Hitomi( } val bytes = getRangedResponse(nozomiAddress, range) - val nozomi = mutableSetOf() val arrayBuffer = ByteBuffer .wrap(bytes) .order(ByteOrder.BIG_ENDIAN) + val size = arrayBuffer.remaining() / Int.SIZE_BYTES + + // we know total number so avoid internal resize overhead + val nozomi = LinkedHashSet(size, 1.0f) + while (arrayBuffer.hasRemaining()) nozomi.add(arrayBuffer.int) diff --git a/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/HitomiDto.kt b/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/HitomiDto.kt index 139f7df08..b424641a2 100644 --- a/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/HitomiDto.kt +++ b/src/all/hitomi/src/eu/kanade/tachiyomi/extension/all/hitomi/HitomiDto.kt @@ -24,7 +24,7 @@ class ImageFile( val hash: String, private val name: String, ) { - val isGif get() = name.endsWith(".gif") + val isGif get() = name.endsWith(".gif") || name.endsWith(".webp") } @Serializable