diff options
author | SZEDER Gábor <szeder.dev@gmail.com> | 2022-11-02 23:01:42 +0100 |
---|---|---|
committer | Taylor Blau <me@ttaylorr.com> | 2022-11-03 01:16:34 +0100 |
commit | 586d8b5052f6b98c262c872f54216e39f3d56625 (patch) | |
tree | 0753446283aeb4af3dff299127742becb632d759 | |
parent | line-log: free the diff queues' arrays when processing merge commits (diff) | |
download | git-586d8b5052f6b98c262c872f54216e39f3d56625.tar.xz git-586d8b5052f6b98c262c872f54216e39f3d56625.zip |
diff.c: use diff_free_queue()
Use diff_free_queue() instead of open-coding it. This shortens the
code and make it less repetitive.
Note that the second hunk in diff_flush() is interesting, because the
'free_queue' label separates the loop freeing the queue's filepairs
from free()-ing the queue's internal array. This is somewhat
suspicious, but it was not an issue before: there is only one place
from where we jump to this label with a goto, and that is protected by
an 'if (!q->nr && ...)' condition, i.e. we only skipped the loop
freeing the filepairs when there were no filepairs in the queue to
begin with.
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
-rw-r--r-- | diff.c | 10 |
1 files changed, 2 insertions, 8 deletions
@@ -6337,13 +6337,9 @@ static int diff_get_patch_id(struct diff_options *options, struct object_id *oid int diff_flush_patch_id(struct diff_options *options, struct object_id *oid, int diff_header_only) { struct diff_queue_struct *q = &diff_queued_diff; - int i; int result = diff_get_patch_id(options, oid, diff_header_only); - for (i = 0; i < q->nr; i++) - diff_free_filepair(q->queue[i]); - - free(q->queue); + diff_free_queue(q); DIFF_QUEUE_CLEAR(q); return result; @@ -6612,10 +6608,8 @@ void diff_flush(struct diff_options *options) if (output_format & DIFF_FORMAT_CALLBACK) options->format_callback(q, options, options->format_callback_data); - for (i = 0; i < q->nr; i++) - diff_free_filepair(q->queue[i]); free_queue: - free(q->queue); + diff_free_queue(q); DIFF_QUEUE_CLEAR(q); diff_free(options); |