From 7ebc249c2225c1a9290b0981fcc7f37490b5b80c Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 4 Apr 2013 11:38:17 -0500 Subject: [PATCH] dec refcount on refdb instead of always freeing --- src/refdb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/refdb.c b/src/refdb.c index 0d2064343..d9b73c6e7 100644 --- a/src/refdb.c +++ b/src/refdb.c @@ -82,7 +82,7 @@ int git_refdb_compress(git_refdb *db) return 0; } -void git_refdb_free(git_refdb *db) +static void refdb_free(git_refdb *db) { if (db->backend) { if(db->backend->free) @@ -94,6 +94,14 @@ void git_refdb_free(git_refdb *db) git__free(db); } +void git_refdb_free(git_refdb *db) +{ + if (db == NULL) + return; + + GIT_REFCOUNT_DEC(db, refdb_free); +} + int git_refdb_exists(int *exists, git_refdb *refdb, const char *ref_name) { assert(exists && refdb && refdb->backend);