diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-09-29 11:23:43 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-09-29 11:23:43 +0900 |
commit | 69c54c72845ebc686d0f4bdd8d44b06f799b0a80 (patch) | |
tree | bbd4e768952cbd26dd7ddaec0ab915fcda9987a8 /pack-bitmap.c | |
parent | 14a8168e2fed3934f1f9afb286f1c64345d06790 (diff) | |
parent | 4d01a7fa65c50e817a935396432e199b7a565f53 (diff) | |
download | git-69c54c72845ebc686d0f4bdd8d44b06f799b0a80.tar.gz |
Merge branch 'ma/leakplugs'
Memory leaks in various codepaths have been plugged.
* ma/leakplugs:
pack-bitmap[-write]: use `object_array_clear()`, don't leak
object_array: add and use `object_array_pop()`
object_array: use `object_array_clear()`, not `free()`
leak_pending: use `object_array_clear()`, not `free()`
commit: fix memory leak in `reduce_heads()`
builtin/commit: fix memory leak in `prepare_index()`
Diffstat (limited to 'pack-bitmap.c')
-rw-r--r-- | pack-bitmap.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/pack-bitmap.c b/pack-bitmap.c index cb3d14ba45..42e3d5f4f2 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -654,8 +654,6 @@ static int in_bitmapped_pack(struct object_list *roots) int prepare_bitmap_walk(struct rev_info *revs) { unsigned int i; - unsigned int pending_nr = revs->pending.nr; - struct object_array_entry *pending_e = revs->pending.objects; struct object_list *wants = NULL; struct object_list *haves = NULL; @@ -670,8 +668,8 @@ int prepare_bitmap_walk(struct rev_info *revs) return -1; } - for (i = 0; i < pending_nr; ++i) { - struct object *object = pending_e[i].item; + for (i = 0; i < revs->pending.nr; ++i) { + struct object *object = revs->pending.objects[i].item; if (object->type == OBJ_NONE) parse_object_or_die(&object->oid, NULL); @@ -715,9 +713,7 @@ int prepare_bitmap_walk(struct rev_info *revs) if (!bitmap_git.loaded && load_pack_bitmap() < 0) return -1; - revs->pending.nr = 0; - revs->pending.alloc = 0; - revs->pending.objects = NULL; + object_array_clear(&revs->pending); if (haves) { revs->ignore_missing_links = 1; |