On Tue, Jan 30, 2018 at 3:25 PM, Elijah Newren <new...@gmail.com> wrote:
> Previously, if !o->detect_rename then get_renames() would return an
> empty string_list, and then process_renames() would have nothing to
> iterate over.  It seems more straightforward to simply avoid calling
> either function in that case.
>
> Signed-off-by: Elijah Newren <new...@gmail.com>
> ---
>  merge-recursive.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/merge-recursive.c b/merge-recursive.c
> index 1986af79a9..4e6d0c248e 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -1338,8 +1338,6 @@ static struct string_list *get_renames(struct 
> merge_options *o,
>         struct diff_options opts;
>
>         renames = xcalloc(1, sizeof(struct string_list));
> -       if (!o->detect_rename)
> -               return renames;
>
>         diff_setup(&opts);
>         opts.flags.recursive = 1;
> @@ -1657,6 +1655,12 @@ static int handle_renames(struct merge_options *o,
>                           struct string_list *entries,
>                           struct rename_info *ri)
>  {
> +       ri->head_renames = NULL;
> +       ri->merge_renames = NULL;
> +
> +       if (!o->detect_rename)
> +               return 1;
> +
>         ri->head_renames  = get_renames(o, head, common, head, merge, 
> entries);
>         ri->merge_renames = get_renames(o, merge, common, head, merge, 
> entries);

So this pulls the condition out and we just do not call get_renames.
Makes sense as then we also do not allocate memory for the stringlists
in get_renames

Reviewed-by: Stefan Beller <sbel...@google.com>

Reply via email to