From: Michael Haggerty <mhagger@alum.mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: Stefan Beller <sbeller@google.com>, Jeff King <peff@peff.net>,
git@vger.kernel.org, Michael Haggerty <mhagger@alum.mit.edu>
Subject: [PATCH 04/18] is_refname_available(): convert local variable "dirname" to strbuf
Date: Fri, 1 May 2015 14:25:44 +0200 [thread overview]
Message-ID: <1430483158-14349-5-git-send-email-mhagger@alum.mit.edu> (raw)
In-Reply-To: <1430483158-14349-1-git-send-email-mhagger@alum.mit.edu>
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>
---
refs.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/refs.c b/refs.c
index 09d753f..2ef1c5e 100644
--- a/refs.c
+++ b/refs.c
@@ -892,9 +892,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 (slash = strchr(refname, '/'); slash; slash = strchr(slash + 1, '/')) {
/*
@@ -942,11 +941,10 @@ static int is_refname_available(const char *refname,
* We are at the leaf of our refname; we want to
* make sure there are no directories which match it.
*/
- 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) {
/*
--
2.1.4
next prev parent reply other threads:[~2015-05-01 12:33 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-01 12:25 [PATCH 00/18] Improve handling of D/F conflicts Michael Haggerty
2015-05-01 12:25 ` [PATCH 01/18] t1404: new tests of D/F conflicts within ref transactions Michael Haggerty
2015-05-05 5:12 ` Eric Sunshine
2015-05-05 15:27 ` Michael Haggerty
2015-05-01 12:25 ` [PATCH 02/18] is_refname_available(): explain the reason for an early exit Michael Haggerty
2015-05-01 17:21 ` Stefan Beller
2015-05-05 15:03 ` Michael Haggerty
2015-05-01 12:25 ` [PATCH 03/18] is_refname_available(): avoid shadowing "dir" variable Michael Haggerty
2015-05-01 12:25 ` Michael Haggerty [this message]
2015-05-01 12:25 ` [PATCH 05/18] entry_matches(): inline function Michael Haggerty
2015-05-01 12:25 ` [PATCH 06/18] report_refname_conflict(): " Michael Haggerty
2015-05-01 12:25 ` [PATCH 07/18] struct nonmatching_ref_data: store a refname instead of a ref_entry Michael Haggerty
2015-05-01 12:25 ` [PATCH 08/18] is_refname_available(): use dirname in first loop Michael Haggerty
2015-05-01 12:25 ` [PATCH 09/18] ref_transaction_commit(): use a string_list for detecting duplicates Michael Haggerty
2015-05-01 12:25 ` [PATCH 10/18] refs: check for D/F conflicts among refs processed in a transaction Michael Haggerty
2015-05-01 12:25 ` [PATCH 11/18] verify_refname_available(): rename function Michael Haggerty
2015-05-01 12:25 ` [PATCH 12/18] verify_refname_available(): report errors via a "struct strbuf *err" Michael Haggerty
2015-05-01 12:25 ` [PATCH 13/18] lock_ref_sha1_basic(): " Michael Haggerty
2015-05-01 12:25 ` [PATCH 14/18] lock_ref_sha1_basic(): improve diagnostics for D/F conflicts Michael Haggerty
2015-05-01 12:25 ` [PATCH 15/18] rename_ref(): integrate lock_ref_sha1_basic() errors into ours Michael Haggerty
2015-05-01 12:25 ` [PATCH 16/18] ref_transaction_commit(): provide better error messages Michael Haggerty
2015-05-01 12:25 ` [PATCH 17/18] ref_transaction_commit(): delete extra "the" from error message Michael Haggerty
2015-05-01 12:25 ` [PATCH 18/18] reflog_expire(): integrate lock_ref_sha1_basic() errors into ours Michael Haggerty
2015-05-03 2:09 ` [PATCH 00/18] Improve handling of D/F conflicts Junio C Hamano
2015-05-05 16:12 ` Michael Haggerty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1430483158-14349-5-git-send-email-mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).