Martin Ågren <martin.agren@xxxxxxxxx> writes: > `find_bisection()` rebuilds the commit list it is given by reversing it > and skipping uninteresting commits. The uninteresting list entries are > leaked. Free them to fix the leak. > > While we're here and understand what's going on, document the function. > In particular, make sure to document that the original list should not > be examined by the caller. Good. Thanks. I notice that this has only two callers and both of them do revs.commits = find_bisection(revs.commits, ...); I wonder if updating its calling convention to (void) find_bisection(&revs.commits, ...); makes sense. This is obviously outside the scope of this patch. > +/* > + * Find bisection. If something is found, `reaches` will be the number of > + * commits that the best commit reaches. `all` will be the count of > + * non-SAMETREE commits. If `find_all` is set, all non-SAMETREE commits are > + * returned sorted, otherwise only a single best commit is returned. The > + * original list will be left in an undefined state and should not be examined. > + */ > extern struct commit_list *find_bisection(struct commit_list *list, > int *reaches, int *all, > int find_all);