register_ref(): make a copy of the bad reference SHA-1
The lifetime of the sha1 parameter passed to an each_ref_fn callback is not guaranteed, so make a copy for later use. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
66ce036628
commit
bf42772e38
5
bisect.c
5
bisect.c
@ -15,7 +15,7 @@
|
|||||||
static struct sha1_array good_revs;
|
static struct sha1_array good_revs;
|
||||||
static struct sha1_array skipped_revs;
|
static struct sha1_array skipped_revs;
|
||||||
|
|
||||||
static const unsigned char *current_bad_sha1;
|
static unsigned char *current_bad_sha1;
|
||||||
|
|
||||||
static const char *argv_checkout[] = {"checkout", "-q", NULL, "--", NULL};
|
static const char *argv_checkout[] = {"checkout", "-q", NULL, "--", NULL};
|
||||||
static const char *argv_show_branch[] = {"show-branch", NULL, NULL};
|
static const char *argv_show_branch[] = {"show-branch", NULL, NULL};
|
||||||
@ -404,7 +404,8 @@ static int register_ref(const char *refname, const unsigned char *sha1,
|
|||||||
int flags, void *cb_data)
|
int flags, void *cb_data)
|
||||||
{
|
{
|
||||||
if (!strcmp(refname, "bad")) {
|
if (!strcmp(refname, "bad")) {
|
||||||
current_bad_sha1 = sha1;
|
current_bad_sha1 = xmalloc(20);
|
||||||
|
hashcpy(current_bad_sha1, sha1);
|
||||||
} else if (!prefixcmp(refname, "good-")) {
|
} else if (!prefixcmp(refname, "good-")) {
|
||||||
sha1_array_append(&good_revs, sha1);
|
sha1_array_append(&good_revs, sha1);
|
||||||
} else if (!prefixcmp(refname, "skip-")) {
|
} else if (!prefixcmp(refname, "skip-")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user