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) {
switch (get_order(env, thisObj)) {
case 0: {
PATH_NATIVE_TYPE next(*GET_PTR(PATH_NATIVE_TYPE));
next++;
PATH_NATIVE_TYPE current(*GET_PTR(PATH_NATIVE_TYPE));
auto end = getPtr<PATH_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end;
return current != *end;
}
case 1: {
TITLE_NATIVE_TYPE next(*GET_PTR(TITLE_NATIVE_TYPE));
next++;
TITLE_NATIVE_TYPE current(*GET_PTR(TITLE_NATIVE_TYPE));
auto end = getPtr<TITLE_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end;
return current != *end;
}
case 2: {
EFFICIENT_NATIVE_TYPE next(*GET_PTR(EFFICIENT_NATIVE_TYPE));
next++;
EFFICIENT_NATIVE_TYPE current(*GET_PTR(EFFICIENT_NATIVE_TYPE));
auto end = getPtr<EFFICIENT_NATIVE_TYPE>(env, thisObj, "nativeHandleEnd");
return next == *end;
return current != *end;
}
default:
// unreachable!()
@ -92,18 +89,18 @@ METHOD0(jboolean, hasNext) {
METHOD0(jobject, next) {
switch (get_order(env, thisObj)) {
case 0: {
(*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);
}
case 1: {
(*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);
}
case 2: {
(*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);
}
default:

View File

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