Correctly locate part range in which read data. #903
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
May fix #kiwix/kiwix-android#3827 (to check).Fix kiwix/kiwix-android#3827
As describe in https://en.cppreference.com/w/cpp/algorithm/equal_range, equal_range is undefined behavior if
bool(comp(elem, value))
does not imply!bool(comp(value, elem))
.This is the case here for exemple with :
value = Range{min:10, max:10}
elem = Range{min:10, max:11}
comp(value, elem)
=> value.min < elem.min && value.max <= elem.min
=> 10 < 10 && 10 <= 10
=> false && true
=> false
comp(elem, value)
=> elem.min < value.min && elem.max <= value.min
=> 10 < 10 && 11 <= 10
=> false && false
=> false
lower_bound
andupper_bound
don't have such requirement oncomp
.