Re: [PATCH 21/24] revisions API: release "reflog_info" in release revisions()
From: Derrick Stolee <hidden>
Date: 2022-03-09 19:25:01
On 3/9/2022 8:16 AM, Ævar Arnfjörð Bjarmason wrote:
quoted hunk ↗ jump to hunk
Add a missing reflog_walk_info_release() to "reflog-walk.c" and use it in release_revisions(). Signed-off-by: Ævar Arnfjörð Bjarmason <redacted> --- reflog-walk.c | 26 ++++++++++++++++++++++++-- reflog-walk.h | 1 + revision.c | 1 + t/t0100-previous.sh | 1 + t/t1401-symbolic-ref.sh | 2 ++ t/t1411-reflog-show.sh | 1 + t/t1412-reflog-loop.sh | 2 ++ t/t1415-worktree-refs.sh | 1 + 8 files changed, 33 insertions(+), 2 deletions(-)diff --git a/reflog-walk.c b/reflog-walk.c index 8ac4b284b6b..4322228d122 100644 --- a/reflog-walk.c +++ b/reflog-walk.c@@ -7,7 +7,7 @@ #include "reflog-walk.h" struct complete_reflogs { - char *ref; + const char *ref; const char *short_ref;
This seems like the opposite change from what I would expect, because the 'const' implies non-ownership.
- free(array->ref); + free((char *)array->ref); + free((char *)array->short_ref);
This further makes the point that we should be keeping non-const versions so we can clearly document ownership.
+static void complete_reflogs_clear(void *util, const char *str)
+{
+ struct complete_reflogs *array = util;
+ free_complete_reflog(array);
+}Is there a reason we don't do the cast inside? free_complete_reflog((struct complete_reflogs *)util); Thanks, -Stolee