From 78db0239db2f5aafe2031cb4b3ce540deb6e8907 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 24 Mar 2015 20:58:00 +0000 Subject: [PATCH] squash some leaks --- src/refs.c | 8 +++----- src/repository.c | 2 ++ tests/filter/file.c | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/refs.c b/src/refs.c index 360e65373..ff5e24067 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1052,12 +1052,10 @@ static int get_terminal(git_reference **out, git_repository *repo, const char *r error = 0; } else { error = get_terminal(out, repo, git_reference_symbolic_target(ref), nesting + 1); - if (error == GIT_ENOTFOUND) { - if (!*out) /* set by the error case in lookup above */ - *out = ref; - } else { + if (error == GIT_ENOTFOUND && !*out) + *out = ref; + else git_reference_free(ref); - } } return error; diff --git a/src/repository.c b/src/repository.c index 6a80070d1..7cffc9f6b 100644 --- a/src/repository.c +++ b/src/repository.c @@ -133,7 +133,9 @@ void git_repository_free(git_repository *repo) for (i = 0; i < repo->reserved_names.size; i++) git_buf_free(git_array_get(repo->reserved_names, i)); + git_array_clear(repo->reserved_names); + git__free(repo->path_gitlink); git__free(repo->path_repository); git__free(repo->workdir); git__free(repo->namespace); diff --git a/tests/filter/file.c b/tests/filter/file.c index 865c416c5..8243a026a 100644 --- a/tests/filter/file.c +++ b/tests/filter/file.c @@ -64,6 +64,7 @@ int buf_writestream_write(git_writestream *s, const char *buf, size_t len) int buf_writestream_close(git_writestream *s) { + GIT_UNUSED(s); return 0; } @@ -94,4 +95,5 @@ void test_filter_file__apply_stream(void) cl_assert_equal_s("crlf\ncrlf\ncrlf\ncrlf\n", write_target.buf.ptr); git_filter_list_free(fl); + write_target.base.free((struct git_writestream *)&write_target); }