diff --git a/lib/src/main/cpp/libkiwix/book.cpp b/lib/src/main/cpp/libkiwix/book.cpp index f148877..a3c9022 100644 --- a/lib/src/main/cpp/libkiwix/book.cpp +++ b/lib/src/main/cpp/libkiwix/book.cpp @@ -51,11 +51,7 @@ METHOD(void, Book, update__Lorg_kiwix_libkiwix_JNIKiwixReader_2, jobject archive THIS->update(*getPtr(env, archive)); } -#define GETTER(retType, name) JNIEXPORT retType JNICALL \ -Java_org_kiwix_libkiwix_Book_##name (JNIEnv* env, jobject thisObj) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libkiwix_Book, THIS, name) GETTER(jstring, getId) GETTER(jstring, getPath) diff --git a/lib/src/main/cpp/libkiwix/library.cpp b/lib/src/main/cpp/libkiwix/library.cpp index 047367c..9dace9c 100644 --- a/lib/src/main/cpp/libkiwix/library.cpp +++ b/lib/src/main/cpp/libkiwix/library.cpp @@ -69,11 +69,7 @@ METHOD(jint, Library, getBookCount, jboolean localBooks, jboolean remoteBooks) { return THIS->getBookCount(localBooks, remoteBooks); } -#define GETTER(retType, name) JNIEXPORT retType JNICALL \ -Java_org_kiwix_libkiwix_Library_##name (JNIEnv* env, jobject thisObj) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libkiwix_Library, THIS, name) GETTER(jobjectArray, getBooksIds) GETTER(jobjectArray, getBooksLanguages) diff --git a/lib/src/main/cpp/libzim/archive.cpp b/lib/src/main/cpp/libzim/archive.cpp index 8ca09d1..8585780 100644 --- a/lib/src/main/cpp/libzim/archive.cpp +++ b/lib/src/main/cpp/libzim/archive.cpp @@ -116,10 +116,7 @@ Java_org_kiwix_libzim_Archive_dispose(JNIEnv* env, jobject thisObj) } #define THIS GET_PTR(zim::Archive) -#define GETTER(retType, name) METHOD0(retType, libzim_Archive, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_Archive, THIS, name) GETTER(jstring, getFilename) diff --git a/lib/src/main/cpp/libzim/blob.cpp b/lib/src/main/cpp/libzim/blob.cpp index 70ce387..3d0eff0 100644 --- a/lib/src/main/cpp/libzim/blob.cpp +++ b/lib/src/main/cpp/libzim/blob.cpp @@ -36,10 +36,7 @@ Java_org_kiwix_kiwixlib_libzim_Blob_dispose(JNIEnv* env, jobject thisObj) dispose(env, thisObj); } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_Blob, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_Blob, THIS, name) METHOD0(jstring, libzim_Blob, getData) { return TO_JNI(std::string(*THIS)); diff --git a/lib/src/main/cpp/libzim/entry.cpp b/lib/src/main/cpp/libzim/entry.cpp index 52da201..88a1024 100644 --- a/lib/src/main/cpp/libzim/entry.cpp +++ b/lib/src/main/cpp/libzim/entry.cpp @@ -38,10 +38,7 @@ Java_org_kiwix_kiwixlib_libzim_Entry_dispose(JNIEnv* env, jobject thisObj) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_Entry, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_Entry, THIS, name) GETTER(jboolean, isRedirect) diff --git a/lib/src/main/cpp/libzim/item.cpp b/lib/src/main/cpp/libzim/item.cpp index 90bc493..9135ce1 100644 --- a/lib/src/main/cpp/libzim/item.cpp +++ b/lib/src/main/cpp/libzim/item.cpp @@ -37,10 +37,7 @@ Java_org_kiwix_kiwixlib_libzim_Item_dispose(JNIEnv* env, jobject thisObj) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_Item, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_Item, THIS, name) GETTER(jstring, getTitle) GETTER(jstring, getPath) diff --git a/lib/src/main/cpp/libzim/search_iterator.cpp b/lib/src/main/cpp/libzim/search_iterator.cpp index 3375366..e3889eb 100644 --- a/lib/src/main/cpp/libzim/search_iterator.cpp +++ b/lib/src/main/cpp/libzim/search_iterator.cpp @@ -39,10 +39,7 @@ METHOD0(void, libzim_SearchIterator, dispose) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_SearchIterator, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_SearchIterator, THIS, name) GETTER(jstring, getPath) GETTER(jstring, getTitle) diff --git a/lib/src/main/cpp/libzim/searcher.cpp b/lib/src/main/cpp/libzim/searcher.cpp index 071782b..0483cc4 100644 --- a/lib/src/main/cpp/libzim/searcher.cpp +++ b/lib/src/main/cpp/libzim/searcher.cpp @@ -52,10 +52,7 @@ METHOD0(void, libzim_Searcher, dispose) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_Searcher, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_Searcher, THIS, name) METHOD(jobject, libzim_Searcher, addArchive, jobject archive) { auto cArchive = getPtr(env, archive); diff --git a/lib/src/main/cpp/libzim/suggestion_item.cpp b/lib/src/main/cpp/libzim/suggestion_item.cpp index d0f051c..9776579 100644 --- a/lib/src/main/cpp/libzim/suggestion_item.cpp +++ b/lib/src/main/cpp/libzim/suggestion_item.cpp @@ -36,10 +36,7 @@ METHOD0(void, libzim_SuggestionItem, dispose) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_SuggestionItem, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_SuggestionItem, THIS, name) GETTER(jstring, getTitle) diff --git a/lib/src/main/cpp/libzim/suggestion_iterator.cpp b/lib/src/main/cpp/libzim/suggestion_iterator.cpp index b0e1be1..9541ab8 100644 --- a/lib/src/main/cpp/libzim/suggestion_iterator.cpp +++ b/lib/src/main/cpp/libzim/suggestion_iterator.cpp @@ -38,10 +38,7 @@ METHOD0(void, libzim_SuggestionIterator, dispose) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_SuggestionIterator, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_SuggestionIterator, THIS, name) METHOD0(jboolean, libzim_SearchIterator, hasNext) { NATIVE_TYPE next(*THIS); diff --git a/lib/src/main/cpp/libzim/suggestion_searcher.cpp b/lib/src/main/cpp/libzim/suggestion_searcher.cpp index 15cad3e..15c9455 100644 --- a/lib/src/main/cpp/libzim/suggestion_searcher.cpp +++ b/lib/src/main/cpp/libzim/suggestion_searcher.cpp @@ -52,10 +52,7 @@ METHOD0(void, libzim_SuggestionSearcher, dispose) } #define THIS GET_PTR(NATIVE_TYPE) -#define GETTER(retType, name) METHOD0(retType, libzim_SuggestionSearcher, name) \ -{ \ - return TO_JNI(THIS->name()); \ -} +#define GETTER(retType, name) GETTER_METHOD(retType, libzim_SuggestionSearcher, THIS, name) METHOD(jobject, libzim_SuggestionSearcher, suggest, jstring query) { auto obj = NEW_OBJECT("org/kiwix/libzim/SuggestionSearch"); diff --git a/lib/src/main/cpp/utils.h b/lib/src/main/cpp/utils.h index 301d6bc..ed15d57 100644 --- a/lib/src/main/cpp/utils.h +++ b/lib/src/main/cpp/utils.h @@ -116,6 +116,10 @@ JNIEXPORT retType JNICALL Java_org_kiwix_##class##_##name( \ JNIEXPORT retType JNICALL Java_org_kiwix_##class##_##name( \ JNIEnv* env, jobject thisObj, __VA_ARGS__) +#define GETTER_METHOD(retType, class, THIS, name) METHOD0(retType, class, name) { \ + return TO_JNI(THIS->name()); \ +} + inline jfieldID getHandleField(JNIEnv* env, jobject obj, const char* handleName) { jclass c = env->GetObjectClass(obj);