line-log: free the diff queues' arrays when processing merge commits

When processing merge commits, the line-level log first creates an
array of diff queues, each comparing the merge commit with one of its
parents, to check whether any of the files in the given line ranges
were modified.  Alas, when freeing these queues it only frees the
filepairs in the queues, but not the queues' internal arrays holding
pointers to those filepairs.

Use the diff_free_queue() helper function introduced in the previous
commit to free the diff queues' internal arrays as well.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
SZEDER Gábor 2022-11-02 23:01:41 +01:00 коммит произвёл Taylor Blau
Родитель 04ae00062d
Коммит ef84222fa9
1 изменённых файлов: 2 добавлений и 4 удалений

Просмотреть файл

@ -1089,10 +1089,8 @@ static struct diff_filepair *diff_filepair_dup(struct diff_filepair *pair)
static void free_diffqueues(int n, struct diff_queue_struct *dq) static void free_diffqueues(int n, struct diff_queue_struct *dq)
{ {
int i, j; for (int i = 0; i < n; i++)
for (i = 0; i < n; i++) diff_free_queue(&dq[i]);
for (j = 0; j < dq[i].nr; j++)
diff_free_filepair(dq[i].queue[j]);
free(dq); free(dq);
} }