From 2e60a088abacf1da6e9935fb85bc39277f4f587a Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 19 Feb 2020 14:27:51 +0100 Subject: [PATCH] [JAVA] Use a long to store the offset of a article in the zim file. Fixes kiwix/kiwix-android#1769 --- src/wrapper/java/org/kiwix/kiwixlib/Pair.java | 2 +- src/wrapper/java/utils.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/wrapper/java/org/kiwix/kiwixlib/Pair.java b/src/wrapper/java/org/kiwix/kiwixlib/Pair.java index ef49e1b33..05aacb678 100644 --- a/src/wrapper/java/org/kiwix/kiwixlib/Pair.java +++ b/src/wrapper/java/org/kiwix/kiwixlib/Pair.java @@ -22,5 +22,5 @@ package org.kiwix.kiwixlib; public class Pair { public String filename; - public int offset; + public long offset; } diff --git a/src/wrapper/java/utils.h b/src/wrapper/java/utils.h index 7fa32a161..f9220403f 100644 --- a/src/wrapper/java/utils.h +++ b/src/wrapper/java/utils.h @@ -258,14 +258,14 @@ inline void setBoolObjValue(const bool value, const jobject obj, JNIEnv* env) env->SetIntField(obj, objFid, c2jni(value, env)); } -inline void setPairObjValue(const std::string& filename, const int offset, +inline void setPairObjValue(const std::string& filename, const long offset, const jobject obj, JNIEnv* env) { jclass objClass = env->GetObjectClass(obj); jfieldID filenameFid = env->GetFieldID(objClass, "filename", "Ljava/lang/String;"); env->SetObjectField(obj, filenameFid, c2jni(filename, env)); - jfieldID offsetFid = env->GetFieldID(objClass, "offset", "I"); - env->SetIntField(obj, offsetFid, offset); + jfieldID offsetFid = env->GetFieldID(objClass, "offset", "J"); + env->SetLongField(obj, offsetFid, offset); } #endif // _ANDROID_JNI_UTILS_H