On Mon, Aug 28, 2017 at 02:28:27PM -0600, Kevin Willford wrote:
> In merge_trees if process_renames or process_entry returns less
> than zero, the method will just return and not free re_merge,
> re_head, or entries.
>
> This change cleans up the allocated variables before returning
> to the caller.
Good catch. I suspect this function could stand to be refactored a bit.
For instance, pulling those inner bits of the conditional into a helper
would let us do:
re_merge = get_renames(...);
... other setup ...
clean = our_new_helper(re_merge, ...);
string_clear(re_merge);
... other cleanup ...
if (clean < 0)
return clean;
without having to resort to a goto. But certainly I don't mind this much
more minimal change, which fixes the actual functionality problem.
-Peff