diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt index 10c1566cb..284bc82c5 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt @@ -6,10 +6,7 @@ import io.ktor.client.HttpClient import io.ktor.client.engine.cio.CIO import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.asCoroutineDispatcher -import kotlinx.io.core.copyTo import kotlinx.io.pool.useInstance -import kotlinx.io.streams.asInput -import kotlinx.io.streams.asOutput import net.mamoe.mirai.utils.io.ByteArrayPool import java.io.* import java.net.InetAddress @@ -24,16 +21,15 @@ actual fun crc32(key: ByteArray): Int = CRC32().let { it.update(key); it.value.t actual fun md5(byteArray: ByteArray): ByteArray = MessageDigest.getInstance("MD5").digest(byteArray) -fun InputStream.md5(): ByteArray { +fun InputStream.md5(): ByteArray = this.use { + val digest = MessageDigest.getInstance("md5") digest.reset() - this.asInput().copyTo(object : OutputStream() { + this.transferTo(object : OutputStream() { override fun write(b: Int) { - b.toByte().let { - digest.update(it) - } + digest.update(b.toByte()) } - }.asOutput()) + }) return digest.digest() }