mirror of
https://github.com/git/git.git
synced 2024-11-23 01:46:13 +08:00
sparse-index: correctly free EWAH contents
While we free the `fsmonitor_dirty` member of `struct index_state`, we do not free the contents of that EWAH. Do so by using `ewah_free()` instead of `FREE_AND_NULL()`. This leak is exposed by t7519, but plugging it alone does not make the test suite pass. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e4ba54d47b
commit
1f5ff83eab
@ -2,6 +2,7 @@
|
||||
|
||||
#include "git-compat-util.h"
|
||||
#include "environment.h"
|
||||
#include "ewah/ewok.h"
|
||||
#include "gettext.h"
|
||||
#include "name-hash.h"
|
||||
#include "read-cache-ll.h"
|
||||
@ -242,7 +243,8 @@ int convert_to_sparse(struct index_state *istate, int flags)
|
||||
cache_tree_update(istate, 0);
|
||||
|
||||
istate->fsmonitor_has_run_once = 0;
|
||||
FREE_AND_NULL(istate->fsmonitor_dirty);
|
||||
ewah_free(istate->fsmonitor_dirty);
|
||||
istate->fsmonitor_dirty = NULL;
|
||||
FREE_AND_NULL(istate->fsmonitor_last_update);
|
||||
|
||||
istate->sparse_index = INDEX_COLLAPSED;
|
||||
@ -438,7 +440,8 @@ void expand_index(struct index_state *istate, struct pattern_list *pl)
|
||||
istate->cache_nr = full->cache_nr;
|
||||
istate->cache_alloc = full->cache_alloc;
|
||||
istate->fsmonitor_has_run_once = 0;
|
||||
FREE_AND_NULL(istate->fsmonitor_dirty);
|
||||
ewah_free(istate->fsmonitor_dirty);
|
||||
istate->fsmonitor_dirty = NULL;
|
||||
FREE_AND_NULL(istate->fsmonitor_last_update);
|
||||
|
||||
strbuf_release(&base);
|
||||
|
Loading…
Reference in New Issue
Block a user