On Wed, Jan 24, 2018 at 12:14:13PM +0100, Michael Haggerty wrote:
> diff --git a/refs/packed-backend.c b/refs/packed-backend.c
> index 08698de6ea..361affd7ad 100644
> --- a/refs/packed-backend.c
> +++ b/refs/packed-backend.c
> [...]
> @@ -551,7 +553,7 @@ static const char *find_reference_location(struct
> snapshot *snapshot,
> */
> const char *hi = snapshot->eof;
>
> - while (lo < hi) {
> + while (lo != hi) {
> const char *mid, *rec;
> int cmp;
This tightens the binary search termination condition. If we ever did
see "hi > lo", we'd want to terminate the loop. Is that ever possible?
I think the answer is "no". Our "hi" here is an exclusive bound, so we
should never go past it via find_end_of_record() when assigning "lo".
And "hi" is always assigned from the start of the current record. That
can never cross "lo", because find_start_of_record() ensures it.
So I think it's fine, but I wanted to double check.
-Peff