Junio C Hamano <gitster@xxxxxxxxx> writes: > The thought behind the change flows much better in the above > explanation than your four-bullet list (which a reader would often > assume are parallel and orthogonal). "Remove this, because it is > not used" is the primary thing for this step, and the fact that the Make that "because it is not strictly necessary", as that seems to be much closer to what is going on, and I agree that it is a good change to remove such "convenience for callers" feature from codepaths that could be performance critical. The callers can pass the "&default" thing themselves just as easily as they pass NULL and have the library code to do the defaulting, and that will remove the need to incur extra cost for a subroutine call.