> -static void filter_trees_update_omits( > +static int filter_trees_update_omits( > struct object *obj, > struct filter_trees_depth_data *filter_data, > int include_it) > { > if (!filter_data->omits) > - return; > + return 1; > > if (include_it) > - oidset_remove(filter_data->omits, &obj->oid); > + return oidset_remove(filter_data->omits, &obj->oid); > else > - oidset_insert(filter_data->omits, &obj->oid); > + return oidset_insert(filter_data->omits, &obj->oid); > } I think this function is getting too magical - if filter_data->omits is not set, we pretend that we have omitted the tree, because we want the same behavior when not needing omits and when the tree is omitted. Could this be done another way?