Aaron Lipman <alipman88@xxxxxxxxx> writes: > Now that find_bisection() accepts multiple boolean arguments, these may > be combined into a single unsigned integer in order to declutter some of > the code in bisect.c I'd rather call them "flags" without "bisect_". If we are passing two sets of flags, one set about "bisect" and the other set about something else, it would make quite a lot of sense to call the first set "bisect_flags", but what we are seeing here is not like that. > + if (read_first_parent_option()) > + bisect_flags |= BISECT_FIRST_PARENT; > + > + if (!!skipped_revs.nr) > + bisect_flags |= BISECT_FIND_ALL; > + You do not care what kind of "true" you are feeding "if()", so I do not think you would want to keep !! prefix here. Older API into find_bisection() may wanted to say "pass 1 to find_all", in which case, normalizing with !! prefix may have made perfect sense, but that no longer holds here. > + > + revs.first_parent_only = !!(bisect_flags & BISECT_FIRST_PARENT); On the other hand, this !! may make sense; especially since .first_parent_only could just be a one-bit unsigned bitfield. > revs.limited = 1; > > bisect_common(&revs); > > - find_bisection(&revs.commits, &reaches, &all, !!skipped_revs.nr, first_parent_only); > + find_bisection(&revs.commits, &reaches, &all, bisect_flags); > @@ -23,6 +23,9 @@ struct commit_list *filter_skipped(struct commit_list *list, > #define BISECT_SHOW_ALL (1<<0) > #define REV_LIST_QUIET (1<<1) > > +#define BISECT_FIND_ALL (1u<<0) > +#define BISECT_FIRST_PARENT (1u<<1) The set of bits to go to your "bisect_flags" are only these two new ones, and the existing BISECT_SHOW_ALL does not belong to it (it is a bit in rev_list_info.flags), but it is not apparent. I wonder if there is a good way to help readers easily tell these two sets apart. These are flags passed to find_bisection(), so perhaps #define FIND_BISECTION_ALL (1U<<0) #define FIND_BISECTION_FIRST_PARENT_ONLY (1U<<1) unsigned flags = 0; if (first_parent) flags |= FIND_BISECTION_FIRST_PARENT_ONLY; ... find_bisection(..., flags); would be a reasonable compromise? Thanks.