diff options
author | Patrick Steinhardt <ps@pks.im> | 2024-08-14 08:52:58 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-08-14 19:08:02 +0200 |
commit | 77d4b3dd73c44b2c617345a6d9686d2f7f5b8a68 (patch) | |
tree | ebb576a3a572e306176112c38971348363d70800 /builtin/diff.c | |
parent | diff: free state populated via options (diff) | |
download | git-77d4b3dd73c44b2c617345a6d9686d2f7f5b8a68.tar.xz git-77d4b3dd73c44b2c617345a6d9686d2f7f5b8a68.zip |
builtin/diff: free symmetric diff members
We populate a `struct symdiff` in case the user has requested a
symmetric diff. Part of this is to populate a `skip` bitmap that
indicates which commits shall be ignored in the diff. But while this
bitmap is dynamically allocated, we never free it.
Fix this by introducing and calling a new `symdiff_release()` function
that does this for us.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/diff.c')
-rw-r--r-- | builtin/diff.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/builtin/diff.c b/builtin/diff.c index 9b6cdabe15..6eac445579 100644 --- a/builtin/diff.c +++ b/builtin/diff.c @@ -388,6 +388,11 @@ static void symdiff_prepare(struct rev_info *rev, struct symdiff *sym) sym->skip = map; } +static void symdiff_release(struct symdiff *sdiff) +{ + bitmap_free(sdiff->skip); +} + int cmd_diff(int argc, const char **argv, const char *prefix) { int i; @@ -619,6 +624,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix) refresh_index_quietly(); release_revisions(&rev); object_array_clear(&ent); + symdiff_release(&sdiff); UNLEAK(blob); return result; } |