diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2022-11-08 19:17:41 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-11-21 04:32:48 +0100 |
commit | 083fd1a264a78b50bc2339d85f4d1113c01a4172 (patch) | |
tree | 801c81e7ea7a93274bd58a6631e9e7c310fd178a /dir.h | |
parent | read-cache.c: clear and free "sparse_checkout_patterns" (diff) | |
download | git-083fd1a264a78b50bc2339d85f4d1113c01a4172.tar.xz git-083fd1a264a78b50bc2339d85f4d1113c01a4172.zip |
dir.c: free "ident" and "exclude_per_dir" in "struct untracked_cache"
When the "ident" member of the structure was added in
1e8fef609e7 (untracked cache: guard and disable on system changes,
2015-03-08) this function wasn't updated to free it. Let's do so.
Let's also free the "exclude_per_dir" memory we've been leaking
since[1], while making sure not to free() the constant ".gitignore"
string we add by default[2].
As we now have three struct members we're freeing let's change
free_untracked_cache() to return early if "uc" isn't defined. We won't
hand it to free() now, but that was just for convenience, once we're
dealing with >=2 struct members this pattern is more convenient.
1. f9e6c649589 (untracked cache: load from UNTR index extension,
2015-03-08)
2. 039bc64e886 (core.excludesfile clean-up, 2007-11-14)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Diffstat (limited to 'dir.h')
-rw-r--r-- | dir.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -188,6 +188,7 @@ struct untracked_cache { struct oid_stat ss_info_exclude; struct oid_stat ss_excludes_file; const char *exclude_per_dir; + char *exclude_per_dir_to_free; struct strbuf ident; /* * dir_struct#flags must match dir_flags or the untracked |