Jeff King [off-list ref] writes:
I guess you did it this way to better share the discard-the-result
codepath.
No, I did it as a hack because many places already do:
if (... sub helper function that eventually call_callback ... < 0)
break; // or
return; // or
goto fail_return; // or whatever to exit recursion and loop
and obviously it was too much pain to change everybody to also pay
attention to the new flag.
A possibly cleaner way would be to designate a single negative value that
is not -1 as "early return but not failure" without using an extra bit,
but that also needs full vetting of the existing callchain, which I didn't
want to do just to write a "it would be as little as this" patch.