1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-09 05:36:10 +02:00

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>
This commit is contained in:
Brandon Williams 2018-05-17 15:51:48 -07:00 committed by Junio C Hamano
parent e808656c46
commit a3b78e833b
2 changed files with 16 additions and 16 deletions

View File

@ -111,30 +111,31 @@ static int commit_graft_pos(struct repository *r, const unsigned char *sha1)
commit_graft_sha1_access); commit_graft_sha1_access);
} }
int register_commit_graft_the_repository(struct commit_graft *graft, int ignore_dups) int register_commit_graft(struct repository *r, struct commit_graft *graft,
int ignore_dups)
{ {
int pos = commit_graft_pos(the_repository, graft->oid.hash); int pos = commit_graft_pos(r, graft->oid.hash);
if (0 <= pos) { if (0 <= pos) {
if (ignore_dups) if (ignore_dups)
free(graft); free(graft);
else { else {
free(the_repository->parsed_objects->grafts[pos]); free(r->parsed_objects->grafts[pos]);
the_repository->parsed_objects->grafts[pos] = graft; r->parsed_objects->grafts[pos] = graft;
} }
return 1; return 1;
} }
pos = -pos - 1; pos = -pos - 1;
ALLOC_GROW(the_repository->parsed_objects->grafts, ALLOC_GROW(r->parsed_objects->grafts,
the_repository->parsed_objects->grafts_nr + 1, r->parsed_objects->grafts_nr + 1,
the_repository->parsed_objects->grafts_alloc); r->parsed_objects->grafts_alloc);
the_repository->parsed_objects->grafts_nr++; r->parsed_objects->grafts_nr++;
if (pos < the_repository->parsed_objects->grafts_nr) if (pos < r->parsed_objects->grafts_nr)
memmove(the_repository->parsed_objects->grafts + pos + 1, memmove(r->parsed_objects->grafts + pos + 1,
the_repository->parsed_objects->grafts + pos, r->parsed_objects->grafts + pos,
(the_repository->parsed_objects->grafts_nr - pos - 1) * (r->parsed_objects->grafts_nr - pos - 1) *
sizeof(*the_repository->parsed_objects->grafts)); sizeof(*r->parsed_objects->grafts));
the_repository->parsed_objects->grafts[pos] = graft; r->parsed_objects->grafts[pos] = graft;
return 0; return 0;
} }

View File

@ -174,8 +174,7 @@ struct commit_graft {
typedef int (*each_commit_graft_fn)(const struct commit_graft *, void *); typedef int (*each_commit_graft_fn)(const struct commit_graft *, void *);
struct commit_graft *read_graft_line(struct strbuf *line); struct commit_graft *read_graft_line(struct strbuf *line);
#define register_commit_graft(r, g, i) register_commit_graft_##r(g, i) int register_commit_graft(struct repository *r, struct commit_graft *, int);
int register_commit_graft_the_repository(struct commit_graft *, int);
#define lookup_commit_graft(r, o) lookup_commit_graft_##r(o) #define lookup_commit_graft(r, o) lookup_commit_graft_##r(o)
struct commit_graft *lookup_commit_graft_the_repository(const struct object_id *oid); struct commit_graft *lookup_commit_graft_the_repository(const struct object_id *oid);