diff --git a/native/src/main/jni/archive.c b/native/src/main/jni/archive.c index b81467125..487b7bb7c 100644 --- a/native/src/main/jni/archive.c +++ b/native/src/main/jni/archive.c @@ -37,7 +37,6 @@ #define BLOCK_SIZE 4096 * 16 static JNIEnv *env; -static jbyteArray jbr; static int cur_index = 0; // Current entry we haven't read any data from it yet static struct archive* arc; @@ -45,12 +44,6 @@ static struct archive* arc; static void* archiveAddr = 0; static jlong archiveSize = 0; -static void JNI_prepare_environment(JNIEnv* jniEnv) -{ - env = jniEnv; - jbr = (*env)->NewGlobalRef(env, (*env)->NewByteArray(env, BLOCK_SIZE)); -} - static int filename_is_playable_file(const char *name) { const char *dotptr = strrchr(name, '.'); if (dotptr++) { @@ -90,8 +83,8 @@ JNIEXPORT jint JNICALL Java_com_hippo_UriArchiveAccessor_openArchive(JNIEnv *_, jobject thiz, jlong addr, jlong size) { archiveAddr = (void *) addr; archiveSize = size; + env = _; madvise(archiveAddr, archiveSize, MADV_SEQUENTIAL | MADV_WILLNEED); - JNI_prepare_environment(_); archive_create(); long r = archive_read_open_memory(arc, (const void *) archiveAddr, archiveSize); if (r) { @@ -147,4 +140,4 @@ Java_com_hippo_UriArchiveAccessor_closeArchive(JNIEnv *jniEnv, jobject thiz) { archive_read_close(arc); archive_read_free(arc); } -} \ No newline at end of file +}