commit: convert register_commit_graft to handle arbitrary repositories

Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Brandon Williams committed May 17, 2018 at 15:51 UTC a3b78e833b06f4bfdef8c4d70d4d269226bebd09
2 files changed +16 -16
commit.c
+15 -14
@@ -111,30 +111,31 @@ static int commit_graft_pos(struct repository *r, const unsigned char *sha1)
111 commit_graft_sha1_access);
112 }
113
114 -int register_commit_graft_the_repository(struct commit_graft *graft, int ignore_dups)
114 +int register_commit_graft(struct repository *r, struct commit_graft *graft,
115 + int ignore_dups)
116 {
116 - int pos = commit_graft_pos(the_repository, graft->oid.hash);
117 + int pos = commit_graft_pos(r, graft->oid.hash);
118
119 if (0 <= pos) {
120 if (ignore_dups)
121 free(graft);
122 else {
122 - free(the_repository->parsed_objects->grafts[pos]);
123 - the_repository->parsed_objects->grafts[pos] = graft;
123 + free(r->parsed_objects->grafts[pos]);
124 + r->parsed_objects->grafts[pos] = graft;
125 }
126 return 1;
127 }
128 pos = -pos - 1;
128 - ALLOC_GROW(the_repository->parsed_objects->grafts,
129 - the_repository->parsed_objects->grafts_nr + 1,
130 - the_repository->parsed_objects->grafts_alloc);
131 - the_repository->parsed_objects->grafts_nr++;
132 - if (pos < the_repository->parsed_objects->grafts_nr)
133 - memmove(the_repository->parsed_objects->grafts + pos + 1,
134 - the_repository->parsed_objects->grafts + pos,
135 - (the_repository->parsed_objects->grafts_nr - pos - 1) *
136 - sizeof(*the_repository->parsed_objects->grafts));
137 - the_repository->parsed_objects->grafts[pos] = graft;
129 + ALLOC_GROW(r->parsed_objects->grafts,
130 + r->parsed_objects->grafts_nr + 1,
131 + r->parsed_objects->grafts_alloc);
132 + r->parsed_objects->grafts_nr++;
133 + if (pos < r->parsed_objects->grafts_nr)
134 + memmove(r->parsed_objects->grafts + pos + 1,
135 + r->parsed_objects->grafts + pos,
136 + (r->parsed_objects->grafts_nr - pos - 1) *
137 + sizeof(*r->parsed_objects->grafts));
138 + r->parsed_objects->grafts[pos] = graft;
139 return 0;
140 }
141
commit.h
+1 -2
@@ -174,8 +174,7 @@ struct commit_graft {
174 typedef int (*each_commit_graft_fn)(const struct commit_graft *, void *);
175
176 struct commit_graft *read_graft_line(struct strbuf *line);
177 -#define register_commit_graft(r, g, i) register_commit_graft_##r(g, i)
178 -int register_commit_graft_the_repository(struct commit_graft *, int);
177 +int register_commit_graft(struct repository *r, struct commit_graft *, int);
178 #define lookup_commit_graft(r, o) lookup_commit_graft_##r(o)
179 struct commit_graft *lookup_commit_graft_the_repository(const struct object_id *oid);
180