diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2011-12-13 21:17:48 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-12-13 09:26:52 -0800 |
commit | 96ec7b1e708863d0cd6b8e72a986d6f0a1bb64db (patch) | |
tree | 6957ce802074c55c0973c8533dbd399a314ecc55 /builtin/checkout.c | |
parent | e4776bd936aa162b7f00cb26260dc4a6ca444abb (diff) | |
download | git-96ec7b1e708863d0cd6b8e72a986d6f0a1bb64db.tar.gz |
Convert resolve_ref+xstrdup to new resolve_refdup function
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/checkout.c')
-rw-r--r-- | builtin/checkout.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c index b7c630287d..00740bd679 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -696,17 +696,14 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new) { int ret = 0; struct branch_info old; + void *path_to_free; unsigned char rev[20]; int flag; memset(&old, 0, sizeof(old)); - old.path = resolve_ref("HEAD", rev, 0, &flag); - if (old.path) - old.path = xstrdup(old.path); + old.path = path_to_free = resolve_refdup("HEAD", rev, 0, &flag); old.commit = lookup_commit_reference_gently(rev, 1); - if (!(flag & REF_ISSYMREF)) { - free((char *)old.path); + if (!(flag & REF_ISSYMREF)) old.path = NULL; - } if (old.path && !prefixcmp(old.path, "refs/heads/")) old.name = old.path + strlen("refs/heads/"); @@ -720,8 +717,10 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new) } ret = merge_working_tree(opts, &old, new); - if (ret) + if (ret) { + free(path_to_free); return ret; + } if (!opts->quiet && !old.path && old.commit && new->commit != old.commit) orphaned_commit_warning(old.commit); @@ -729,7 +728,7 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new) update_refs_for_switch(opts, &old, new); ret = post_checkout_hook(old.commit, new->commit, 1); - free((char *)old.path); + free(path_to_free); return ret || opts->writeout_error; } |