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>
This commit is contained in:
René Scharfe 2016-08-13 14:11:27 +02:00 committed by Junio C Hamano
parent c089320cf6
commit beb518c985
2 changed files with 14 additions and 7 deletions

View file

@ -1576,6 +1576,16 @@ int commit_tree_extended(const char *msg, size_t msg_len,
return result; return result;
} }
void set_merge_remote_desc(struct commit *commit,
const char *name, struct object *obj)
{
struct merge_remote_desc *desc;
desc = xmalloc(sizeof(*desc));
desc->obj = obj;
desc->name = xstrdup(name);
commit->util = desc;
}
struct commit *get_merge_parent(const char *name) struct commit *get_merge_parent(const char *name)
{ {
struct object *obj; struct object *obj;
@ -1585,13 +1595,8 @@ struct commit *get_merge_parent(const char *name)
return NULL; return NULL;
obj = parse_object(oid.hash); obj = parse_object(oid.hash);
commit = (struct commit *)peel_to_type(name, 0, obj, OBJ_COMMIT); commit = (struct commit *)peel_to_type(name, 0, obj, OBJ_COMMIT);
if (commit && !commit->util) { if (commit && !commit->util)
struct merge_remote_desc *desc; set_merge_remote_desc(commit, name, obj);
desc = xmalloc(sizeof(*desc));
desc->obj = obj;
desc->name = xstrdup(name);
commit->util = desc;
}
return commit; return commit;
} }

View file

@ -359,6 +359,8 @@ struct merge_remote_desc {
const char *name; const char *name;
}; };
#define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util)) #define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util))
extern void set_merge_remote_desc(struct commit *commit,
const char *name, struct object *obj);
/* /*
* Given "name" from the command line to merge, find the commit object * Given "name" from the command line to merge, find the commit object