commit: factor out set_merge_remote_desc()

Export a helper function for allocating, populating and attaching a merge_remote_desc to a commit. Signed-off-by: Rene Scharfe <l.s.r@web.de> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

René Scharfe committed Aug 13, 2016 at 14:11 UTC beb518c9850f459a71a2cb9e1d36e677528a55c0
2 files changed +14 -7
commit.c
+12 -7
@@ -1576,6 +1576,16 @@ int commit_tree_extended(const char *msg, size_t msg_len,
1576 return result;
1577 }
1578
1579 +void set_merge_remote_desc(struct commit *commit,
1580 + const char *name, struct object *obj)
1581 +{
1582 + struct merge_remote_desc *desc;
1583 + desc = xmalloc(sizeof(*desc));
1584 + desc->obj = obj;
1585 + desc->name = xstrdup(name);
1586 + commit->util = desc;
1587 +}
1588 +
1589 struct commit *get_merge_parent(const char *name)
1590 {
1591 struct object *obj;
@@ -1585,13 +1595,8 @@ struct commit *get_merge_parent(const char *name)
1595 return NULL;
1596 obj = parse_object(oid.hash);
1597 commit = (struct commit *)peel_to_type(name, 0, obj, OBJ_COMMIT);
1588 - if (commit && !commit->util) {
1589 - struct merge_remote_desc *desc;
1590 - desc = xmalloc(sizeof(*desc));
1591 - desc->obj = obj;
1592 - desc->name = xstrdup(name);
1593 - commit->util = desc;
1594 - }
1598 + if (commit && !commit->util)
1599 + set_merge_remote_desc(commit, name, obj);
1600 return commit;
1601 }
1602
commit.h
+2
@@ -359,6 +359,8 @@ struct merge_remote_desc {
359 const char *name;
360 };
361 #define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util))
362 +extern void set_merge_remote_desc(struct commit *commit,
363 + const char *name, struct object *obj);
364
365 /*
366 * Given "name" from the command line to merge, find the commit object