mirror of
https://github.com/git/git
synced 2024-10-02 14:45:21 +00:00
sha1_name: simplify strbuf handling in interpret_nth_prior_checkout()
Pass the target strbuf to the callback function grab_nth_branch_switch() by reference so that it can add the result string directly instead of having it put the string into a temporary strbuf first. This gets rid of an extra allocation and a string copy. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5fa0f5238b
commit
4b3aa170d1
11
sha1-name.c
11
sha1-name.c
|
@ -1289,7 +1289,7 @@ static int get_oid_oneline(struct repository *r,
|
||||||
|
|
||||||
struct grab_nth_branch_switch_cbdata {
|
struct grab_nth_branch_switch_cbdata {
|
||||||
int remaining;
|
int remaining;
|
||||||
struct strbuf buf;
|
struct strbuf *sb;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid,
|
static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid,
|
||||||
|
@ -1307,8 +1307,8 @@ static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid
|
||||||
return 0;
|
return 0;
|
||||||
if (--(cb->remaining) == 0) {
|
if (--(cb->remaining) == 0) {
|
||||||
len = target - match;
|
len = target - match;
|
||||||
strbuf_reset(&cb->buf);
|
strbuf_reset(cb->sb);
|
||||||
strbuf_add(&cb->buf, match, len);
|
strbuf_add(cb->sb, match, len);
|
||||||
return 1; /* we are done */
|
return 1; /* we are done */
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1341,18 +1341,15 @@ static int interpret_nth_prior_checkout(struct repository *r,
|
||||||
if (nth <= 0)
|
if (nth <= 0)
|
||||||
return -1;
|
return -1;
|
||||||
cb.remaining = nth;
|
cb.remaining = nth;
|
||||||
strbuf_init(&cb.buf, 20);
|
cb.sb = buf;
|
||||||
|
|
||||||
retval = refs_for_each_reflog_ent_reverse(get_main_ref_store(r),
|
retval = refs_for_each_reflog_ent_reverse(get_main_ref_store(r),
|
||||||
"HEAD", grab_nth_branch_switch, &cb);
|
"HEAD", grab_nth_branch_switch, &cb);
|
||||||
if (0 < retval) {
|
if (0 < retval) {
|
||||||
strbuf_reset(buf);
|
|
||||||
strbuf_addbuf(buf, &cb.buf);
|
|
||||||
retval = brace - name + 1;
|
retval = brace - name + 1;
|
||||||
} else
|
} else
|
||||||
retval = 0;
|
retval = 0;
|
||||||
|
|
||||||
strbuf_release(&cb.buf);
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue