Cleanup some IO overhead
This commit is contained in:
1 parent
5c18dad1d8
commit
f6458cd8ee
3 files changed
+4
-7
No files matched your search
@@ -459,7 +459,7 @@ Java_com_hippo_UriArchiveAccessor_getFilename(JNIEnv *env, jobject thiz, jint in
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_com_hippo_UriArchiveAccessor_extractToFd(JNIEnv *env, jobject thiz, jint index, jobject fd) {
|
||||
Java_com_hippo_UriArchiveAccessor_extractToFd(JNIEnv *env, jobject thiz, jint index, jint fd) {
|
||||
EH_UNUSED(env);
|
||||
EH_UNUSED(thiz);
|
||||
index = entries[index].index;
|
||||
@@ -467,10 +467,7 @@ Java_com_hippo_UriArchiveAccessor_extractToFd(JNIEnv *env, jobject thiz, jint in
|
||||
int ret;
|
||||
ret = archive_get_ctx(&ctx, index);
|
||||
if (!ret) {
|
||||
jclass fdClass = (*env)->FindClass(env, "java/io/FileDescriptor");
|
||||
jfieldID fdClassDescriptorFieldID = (*env)->GetFieldID(env, fdClass, "descriptor", "I");
|
||||
int realfd = (*env)->GetIntField(env, fd, fdClassDescriptorFieldID);
|
||||
archive_read_data_into_fd(ctx->arc, realfd);
|
||||
archive_read_data_into_fd(ctx->arc, fd);
|
||||
ctx->using = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ class UriArchiveAccessor(ctx: Context, private val uri: Uri) {
|
||||
|
||||
private external fun openArchive(fd: Int, size: Long): Int
|
||||
private external fun extractToByteBuffer(index: Int): ByteBuffer?
|
||||
external fun extractToFd(index: Int, fd: FileDescriptor)
|
||||
external fun extractToFd(index: Int, fd: Int)
|
||||
external fun getFilename(index: Int): String
|
||||
external fun needPassword(): Boolean
|
||||
external fun providePassword(str: String): Boolean
|
||||
|
||||
@@ -144,7 +144,7 @@ class ArchivePageLoader(context: Context, uri: Uri, passwdFlow: Flow<String>) :
|
||||
e.printStackTrace()
|
||||
return false
|
||||
}
|
||||
archiveAccessor.extractToFd(index, fd.fileDescriptor)
|
||||
archiveAccessor.extractToFd(index, fd.fd)
|
||||
try {
|
||||
fd.close()
|
||||
} catch (e: IOException) {
|
||||
|
||||
Reference in new issue
Block a user