summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Woods <woods.bryan@gmail.com>2015-09-11 16:35:14 -0700
committerCarlos Martín Nieto <cmn@dwim.me>2015-11-04 16:43:32 -0800
commitd1a7d0e12a078b4f04b0106ab9be59eded8d0c52 (patch)
treea19ed4b4e4a4e2239d2fd47627574102fe8b31da
parent7e53d83c0f0ade57e6789428c79023d393d7bcf9 (diff)
downloadlibgit2-d1a7d0e12a078b4f04b0106ab9be59eded8d0c52.tar.gz
Removing memory leak in mempack's free
It calls git_mempack_reset which reallocates the object array. git_oidmap_free is now called on it explicitly.
-rw-r--r--src/odb_mempack.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/odb_mempack.c b/src/odb_mempack.c
index 538dfc521..25f30590c 100644
--- a/src/odb_mempack.c
+++ b/src/odb_mempack.c
@@ -161,8 +161,12 @@ void git_mempack_reset(git_odb_backend *_backend)
static void impl__free(git_odb_backend *_backend)
{
- git_mempack_reset(_backend);
- git__free(_backend);
+ struct memory_packer_db *db = (struct memory_packer_db *)_backend;
+
+ git_mempack_reset(db);
+ git_oidmap_free(db->objects);
+
+ git__free(db);
}
int git_mempack_new(git_odb_backend **out)