diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-03-13 22:56:18 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-03-13 22:56:18 (GMT) |
commit | ccafbbfb4ee29ee3e9fab1e5e22ec3b88a5aec4f (patch) | |
tree | 58589a4ee55858487b7758d5f9ef553da0f6b542 /repository.c | |
parent | 4eb845ac0af364d65666389c6efae3f09483cd2e (diff) | |
parent | 759f34073807119ffb935a84aa86e6a8fa7a9bc4 (diff) | |
download | git-ccafbbfb4ee29ee3e9fab1e5e22ec3b88a5aec4f.zip git-ccafbbfb4ee29ee3e9fab1e5e22ec3b88a5aec4f.tar.gz git-ccafbbfb4ee29ee3e9fab1e5e22ec3b88a5aec4f.tar.bz2 |
Merge branch 'ab/plug-random-leaks'
Plug random memory leaks.
* ab/plug-random-leaks:
repository.c: free the "path cache" in repo_clear()
range-diff: plug memory leak in read_patches()
range-diff: plug memory leak in common invocation
lockfile API users: simplify and don't leak "path"
commit-graph: stop fill_oids_from_packs() progress on error and free()
commit-graph: fix memory leak in misused string_list API
submodule--helper: fix trivial leak in module_add()
transport: stop needlessly copying bundle header references
bundle: call strvec_clear() on allocated strvec
remote-curl.c: free memory in cmd_main()
urlmatch.c: add and use a *_release() function
diff.c: free "buf" in diff_words_flush()
merge-base: free() allocated "struct commit **" list
index-pack: fix memory leaks
Diffstat (limited to 'repository.c')
-rw-r--r-- | repository.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/repository.c b/repository.c index dddee32..5d166b6 100644 --- a/repository.c +++ b/repository.c @@ -240,6 +240,20 @@ out: return ret; } +static void repo_clear_path_cache(struct repo_path_cache *cache) +{ + FREE_AND_NULL(cache->squash_msg); + FREE_AND_NULL(cache->squash_msg); + FREE_AND_NULL(cache->merge_msg); + FREE_AND_NULL(cache->merge_rr); + FREE_AND_NULL(cache->merge_mode); + FREE_AND_NULL(cache->merge_head); + FREE_AND_NULL(cache->merge_autostash); + FREE_AND_NULL(cache->auto_merge); + FREE_AND_NULL(cache->fetch_head); + FREE_AND_NULL(cache->shallow); +} + void repo_clear(struct repository *repo) { FREE_AND_NULL(repo->gitdir); @@ -280,6 +294,8 @@ void repo_clear(struct repository *repo) remote_state_clear(repo->remote_state); FREE_AND_NULL(repo->remote_state); } + + repo_clear_path_cache(&repo->cached_paths); } int repo_read_index(struct repository *repo) |