summaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2018-05-19 05:28:30 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-05-21 05:07:20 (GMT)
commite2e5ac2303377c28e82b6044b06caebe4a1734c9 (patch)
tree7f44f4214e6c8d9913592154949195fbb4037012 /commit.c
parent7b680d32f3e3e2469733a7668fad2253bb4aeb4d (diff)
downloadgit-e2e5ac2303377c28e82b6044b06caebe4a1734c9.zip
git-e2e5ac2303377c28e82b6044b06caebe4a1734c9.tar.gz
git-e2e5ac2303377c28e82b6044b06caebe4a1734c9.tar.bz2
merge: use commit-slab in merge remote desc instead of commit->util
It's done so that commit->util can be removed. See more explanation in the commit that removes commit->util. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/commit.c b/commit.c
index 5704911..e63a8df 100644
--- a/commit.c
+++ b/commit.c
@@ -1574,13 +1574,21 @@ out:
return result;
}
+define_commit_slab(merge_desc_slab, struct merge_remote_desc *);
+static struct merge_desc_slab merge_desc_slab = COMMIT_SLAB_INIT(1, merge_desc_slab);
+
+struct merge_remote_desc *merge_remote_util(struct commit *commit)
+{
+ return *merge_desc_slab_at(&merge_desc_slab, commit);
+}
+
void set_merge_remote_desc(struct commit *commit,
const char *name, struct object *obj)
{
struct merge_remote_desc *desc;
FLEX_ALLOC_STR(desc, name, name);
desc->obj = obj;
- commit->util = desc;
+ *merge_desc_slab_at(&merge_desc_slab, commit) = desc;
}
struct commit *get_merge_parent(const char *name)
@@ -1592,7 +1600,7 @@ struct commit *get_merge_parent(const char *name)
return NULL;
obj = parse_object(&oid);
commit = (struct commit *)peel_to_type(name, 0, obj, OBJ_COMMIT);
- if (commit && !commit->util)
+ if (commit && !merge_remote_util(commit))
set_merge_remote_desc(commit, name, obj);
return commit;
}