From 73ba5d78b4e5d96b2c521e3d0a2ec86c26a2d25b Mon Sep 17 00:00:00 2001 From: "Stephen P. Smith" Date: Sun, 30 Sep 2018 07:12:45 -0700 Subject: roll wt_status_state into wt_status and populate in the collect phase Status variables were initialized in the collect phase and some variables were later freed in the print functions. A "struct wt_status" used to be sufficient for the output phase to work. It was designed to be filled in the collect phase and consumed in the output phase, but over time some fields were added and output phase started filling the fields. A "struct wt_status_state" that was used in other codepaths turned out to be useful in the "git status" output. This is not tied to "struct wt_status", so filling in the collect phase was not consistently followed. Move the status state structure variables into the status state structure and populate them in the collect functions. Create a new function to free the buffers that were being freed in the print function. Call this new function in commit.c where both the collect and print functions were being called. Based on a patch suggestion by Junio C Hamano. [1] [1] https://public-inbox.org/git/xmqqr2i5ueg4.fsf@gitster-ct.c.googlers.com/ Signed-off-by: Stephen P. Smith Signed-off-by: Junio C Hamano --- builtin/commit.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'builtin/commit.c') diff --git a/builtin/commit.c b/builtin/commit.c index 51ecebbec1..e168321e49 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -506,6 +506,7 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix, int wt_status_collect(s); wt_status_print(s); + wt_status_collect_free_buffers(s); return s->committable; } @@ -1388,6 +1389,8 @@ int cmd_status(int argc, const char **argv, const char *prefix) s.prefix = prefix; wt_status_print(&s); + wt_status_collect_free_buffers(&s); + return 0; } -- cgit v1.2.3