Fix Iterators.

This commit is contained in:
Matthieu Gautier 2023-06-21 14:45:04 +02:00
parent 16ee15021a
commit df631a4679
2 changed files with 10 additions and 15 deletions

View File

@ -66,22 +66,19 @@ METHOD0(void, dispose)
METHOD0(jboolean, hasNext) { METHOD0(jboolean, hasNext) {
switch (get_order(env, thisObj)) { switch (get_order(env, thisObj)) {
case 0: { case 0: {
PATH_NATIVE_TYPE next(*GET_PTR(PATH_NATIVE_TYPE)); PATH_NATIVE_TYPE current(*GET_PTR(PATH_NATIVE_TYPE));
next++;
auto end = getPtr<PATH_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd"); auto end = getPtr<PATH_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end; return current != *end;
} }
case 1: { case 1: {
TITLE_NATIVE_TYPE next(*GET_PTR(TITLE_NATIVE_TYPE)); TITLE_NATIVE_TYPE current(*GET_PTR(TITLE_NATIVE_TYPE));
next++;
auto end = getPtr<TITLE_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd"); auto end = getPtr<TITLE_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end; return current != *end;
} }
case 2: { case 2: {
EFFICIENT_NATIVE_TYPE next(*GET_PTR(EFFICIENT_NATIVE_TYPE)); EFFICIENT_NATIVE_TYPE current(*GET_PTR(EFFICIENT_NATIVE_TYPE));
next++;
auto end = getPtr<EFFICIENT_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd"); auto end = getPtr<EFFICIENT_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end; return current != *end;
} }
default: default:
// unreachable!() // unreachable!()
@ -92,18 +89,18 @@ METHOD0(jboolean, hasNext) {
METHOD0(jobject, next) { METHOD0(jobject, next) {
switch (get_order(env, thisObj)) { switch (get_order(env, thisObj)) {
case 0: { case 0: {
(*GET_PTR(PATH_NATIVE_TYPE))++;
zim::Entry entry = **GET_PTR(PATH_NATIVE_TYPE); zim::Entry entry = **GET_PTR(PATH_NATIVE_TYPE);
(*GET_PTR(PATH_NATIVE_TYPE))++;
return BUILD_WRAPPER("org/kiwix/libzim/Entry", entry); return BUILD_WRAPPER("org/kiwix/libzim/Entry", entry);
} }
case 1: { case 1: {
(*GET_PTR(TITLE_NATIVE_TYPE))++;
zim::Entry entry = **GET_PTR(TITLE_NATIVE_TYPE); zim::Entry entry = **GET_PTR(TITLE_NATIVE_TYPE);
(*GET_PTR(TITLE_NATIVE_TYPE))++;
return BUILD_WRAPPER("org/kiwix/libzim/Entry", entry); return BUILD_WRAPPER("org/kiwix/libzim/Entry", entry);
} }
case 2: { case 2: {
(*GET_PTR(EFFICIENT_NATIVE_TYPE))++;
zim::Entry entry = **GET_PTR(EFFICIENT_NATIVE_TYPE); zim::Entry entry = **GET_PTR(EFFICIENT_NATIVE_TYPE);
(*GET_PTR(EFFICIENT_NATIVE_TYPE))++;
return BUILD_WRAPPER("org/kiwix/libzim/Entry", entry); return BUILD_WRAPPER("org/kiwix/libzim/Entry", entry);
} }
default: default:

View File

@ -57,10 +57,8 @@ METHOD0(jstring, getZimId) {
} }
METHOD0(jboolean, hasNext) { METHOD0(jboolean, hasNext) {
zim::SearchIterator next(*THIS);
next++;
auto end = getPtr<NATIVE_TYPE>(env, thisObj, "nativeHandleEnd"); auto end = getPtr<NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end; return *THIS != *end;
} }
METHOD0(jobject, next) { METHOD0(jobject, next) {