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>
Michael Haggerty committed
May 11, 2015 at 17:25 UTC
6075f3076e8a7fea0a132d459d1e21e771cdd880
1 file changed
+5
-7
refs.c
+5
-7
@@ -887,9 +887,8 @@ static int is_refname_available(const char *refname,
887
struct ref_dir *dir)
888
{
889
const char *slash;
890
- size_t len;
890
int pos;
892
- char *dirname;
891
+ struct strbuf dirname = STRBUF_INIT;
892
893
/*
894
* For the sake of comments in this function, suppose that
@@ -955,11 +954,10 @@ static int is_refname_available(const char *refname,
954
* names are in the "refs/foo/bar/" namespace, because they
955
* *do* conflict.
956
*/
958
- len = strlen(refname);
959
- dirname = xmallocz(len + 1);
960
- sprintf(dirname, "%s/", refname);
961
- pos = search_ref_dir(dir, dirname, len + 1);
962
- free(dirname);
957
+ strbuf_addstr(&dirname, refname);
958
+ strbuf_addch(&dirname, '/');
959
+ pos = search_ref_dir(dir, dirname.buf, dirname.len);
960
+ strbuf_release(&dirname);
961
962
if (pos >= 0) {
963
/*