mirror of
https://github.com/git/git.git
synced 2024-11-27 20:14:30 +08:00
bundle: use leak_pending flag
Instead of creating a copy of the list of pending objects, copy the struct object_array that points to it, turn on leak_pending, and thus cause prepare_revision_walk to leave it to us. And free it once we're done. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
353f5657a8
commit
5be7859962
8
bundle.c
8
bundle.c
@ -122,11 +122,8 @@ int verify_bundle(struct bundle_header *header, int verbose)
|
||||
req_nr = revs.pending.nr;
|
||||
setup_revisions(2, argv, &revs, NULL);
|
||||
|
||||
memset(&refs, 0, sizeof(struct object_array));
|
||||
for (i = 0; i < revs.pending.nr; i++) {
|
||||
struct object_array_entry *e = revs.pending.objects + i;
|
||||
add_object_array(e->item, e->name, &refs);
|
||||
}
|
||||
refs = revs.pending;
|
||||
revs.leak_pending = 1;
|
||||
|
||||
if (prepare_revision_walk(&revs))
|
||||
die("revision walk setup failed");
|
||||
@ -146,6 +143,7 @@ int verify_bundle(struct bundle_header *header, int verbose)
|
||||
|
||||
for (i = 0; i < refs.nr; i++)
|
||||
clear_commit_marks((struct commit *)refs.objects[i].item, -1);
|
||||
free(refs.objects);
|
||||
|
||||
if (verbose) {
|
||||
struct ref_list *r;
|
||||
|
Loading…
Reference in New Issue
Block a user