summaryrefslogtreecommitdiff
path: root/refs.c
diff options
context:
space:
mode:
authorMichael Haggerty <mhagger@alum.mit.edu>2015-05-11 15:25:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-05-11 18:50:17 (GMT)
commit6075f3076e8a7fea0a132d459d1e21e771cdd880 (patch)
tree90d6a2070e240656cf888a67b97e0209ff914ad0 /refs.c
parent9ef6eaa287b12ff9469c7775507f107b86f9a8c8 (diff)
downloadgit-6075f3076e8a7fea0a132d459d1e21e771cdd880.zip
git-6075f3076e8a7fea0a132d459d1e21e771cdd880.tar.gz
git-6075f3076e8a7fea0a132d459d1e21e771cdd880.tar.bz2
is_refname_available(): convert local variable "dirname" to strbuf
This change wouldn't be worth it by itself, but in a moment we will use the strbuf for more string juggling. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/refs.c b/refs.c
index 9d87e84..faabd68 100644
--- a/refs.c
+++ b/refs.c
@@ -887,9 +887,8 @@ static int is_refname_available(const char *refname,
struct ref_dir *dir)
{
const char *slash;
- size_t len;
int pos;
- char *dirname;
+ struct strbuf dirname = STRBUF_INIT;
/*
* For the sake of comments in this function, suppose that
@@ -955,11 +954,10 @@ static int is_refname_available(const char *refname,
* names are in the "refs/foo/bar/" namespace, because they
* *do* conflict.
*/
- len = strlen(refname);
- dirname = xmallocz(len + 1);
- sprintf(dirname, "%s/", refname);
- pos = search_ref_dir(dir, dirname, len + 1);
- free(dirname);
+ strbuf_addstr(&dirname, refname);
+ strbuf_addch(&dirname, '/');
+ pos = search_ref_dir(dir, dirname.buf, dirname.len);
+ strbuf_release(&dirname);
if (pos >= 0) {
/*