[PATCH] diff-lib: clear `pending` object-array in `index_differs_from()`
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Sep 20, 2017, 19:47 UTC
- Message-ID
- <1505936846-2195-2-git-send-email-martin.agren@gmail.com>
Instead of conditionally freeing `rev.pending.objects`, just call `object_array_clear()` on `rev.pending`. This means we don't poke as much into the implementation, which is already a good thing, but also that we free the individual entries as well, thereby fixing a memory-leak.
Signed-off-by: Martin Ågren <martin.agren@gmail.com> --- diff-lib.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/diff-lib.c b/diff-lib.c index 2a52b07..4e0980c 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -549,7 +549,6 @@ int index_differs_from(const char *def, int diff_flags, rev.diffopt.flags |= diff_flags; rev.diffopt.ita_invisible_in_index = ita_invisible_in_index; run_diff_index(&rev, 1); - if (rev.pending.alloc) - free(rev.pending.objects); + object_array_clear(&rev.pending); return (DIFF_OPT_TST(&rev.diffopt, HAS_CHANGES) != 0); }
-- 2.14.1