[PATCH 5/7] worktree.c: add clear_worktree()
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- May 10, 2016, 14:15 UTC
- Message-ID
- <20160510141553.22967-5-pclouds@gmail.com>
- In-Reply-To
- <20160510141553.22967-1-pclouds@gmail.com>
The use case is keep some worktree and discard the rest of the worktree list.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- worktree.c | 14 +++++++++++--- worktree.h | 5 +++++ 2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/worktree.c b/worktree.c index f4a4f38..335c58f 100644 --- a/worktree.c +++ b/worktree.c @@ -5,14 +5,22 @@ #include "dir.h" #include "wt-status.h" +void clear_worktree(struct worktree *wt) +{ + if (!wt) + return; + free(wt->path); + free(wt->id); + free(wt->head_ref); + memset(wt, 0, sizeof(*wt)); +} + void free_worktrees(struct worktree **worktrees) { int i = 0; for (i = 0; worktrees[i]; i++) { - free(worktrees[i]->path); - free(worktrees[i]->id); - free(worktrees[i]->head_ref); + clear_worktree(worktrees[i]); free(worktrees[i]); } free (worktrees); diff --git a/worktree.h b/worktree.h index 1394909..7430a4e 100644 --- a/worktree.h +++ b/worktree.h @@ -29,6 +29,11 @@ extern struct worktree **get_worktrees(void); */ extern const char *get_worktree_git_dir(const struct worktree *wt); +/* + * Free up the memory for worktree + */ +extern void clear_worktree(struct worktree *); + /* * Free up the memory for worktree(s) */
-- 2.8.2.524.g6ff3d78