Code

Convert resolve_ref+xstrdup to new resolve_refdup function
[git.git] / builtin / notes.c
index 10b8bc7ad9c392d9dad9e06cf2d1b3ae3f7fd001..667e20a1e13770b845c0774e754043fae514a4b1 100644 (file)
@@ -804,6 +804,7 @@ static int merge_commit(struct notes_merge_options *o)
        struct notes_tree *t;
        struct commit *partial;
        struct pretty_print_context pretty_ctx;
+       void *local_ref_to_free;
        int ret;
 
        /*
@@ -826,10 +827,10 @@ static int merge_commit(struct notes_merge_options *o)
        t = xcalloc(1, sizeof(struct notes_tree));
        init_notes(t, "NOTES_MERGE_PARTIAL", combine_notes_overwrite, 0);
 
-       o->local_ref = resolve_ref("NOTES_MERGE_REF", sha1, 0, NULL);
+       o->local_ref = local_ref_to_free =
+               resolve_refdup("NOTES_MERGE_REF", sha1, 0, NULL);
        if (!o->local_ref)
                die("Failed to resolve NOTES_MERGE_REF");
-       o->local_ref = xstrdup(o->local_ref);
 
        if (notes_merge_commit(o, t, partial, sha1))
                die("Failed to finalize notes merge");
@@ -846,7 +847,7 @@ static int merge_commit(struct notes_merge_options *o)
        free_notes(t);
        strbuf_release(&msg);
        ret = merge_abort(o);
-       free((char *)o->local_ref);
+       free(local_ref_to_free);
        return ret;
 }