From: Junio C Hamano Date: Fri, 29 Sep 2017 02:23:43 +0000 (+0900) Subject: Merge branch 'ma/leakplugs' X-Git-Tag: v2.15.0-rc0~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=69c54c72845ebc686d0f4bdd8d44b06f799b0a80;p=thirdparty%2Fgit.git 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()` --- 69c54c72845ebc686d0f4bdd8d44b06f799b0a80 diff --cc builtin/fast-export.c index da42ee5e60,cff8d0fc5b..2fb60d6d48 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@@ -650,11 -634,10 +650,10 @@@ static void handle_tail(struct object_a { struct commit *commit; while (commits->nr) { - commit = (struct commit *)commits->objects[commits->nr - 1].item; + commit = (struct commit *)object_array_pop(commits); if (has_unshown_parent(commit)) return; - handle_commit(commit, revs); + handle_commit(commit, revs, paths_of_changed_objects); - commits->nr--; } } diff --cc builtin/fsck.c index 1e4c471b41,7d4ad02733..56afe405b8 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@@ -180,14 -179,9 +180,9 @@@ static int traverse_reachable(void unsigned int nr = 0; int result = 0; if (show_progress) - progress = start_progress_delay(_("Checking connectivity"), 0, 0, 2); + progress = start_delayed_progress(_("Checking connectivity"), 0); while (pending.nr) { - struct object_array_entry *entry; - struct object *obj; - - entry = pending.objects + --pending.nr; - obj = entry->item; - result |= traverse_one_object(obj); + result |= traverse_one_object(object_array_pop(&pending)); display_progress(progress, ++nr); } stop_progress(&progress);