Commit 21d73e71 by Vicent Marti

Always free the parents of a revwalk commit

Thanks to Carlos Martín Nieto for spotting this.
parent 1881f078
...@@ -482,11 +482,22 @@ int git_revwalk_new(git_revwalk **revwalk_out, git_repository *repo) ...@@ -482,11 +482,22 @@ int git_revwalk_new(git_revwalk **revwalk_out, git_repository *repo)
void git_revwalk_free(git_revwalk *walk) void git_revwalk_free(git_revwalk *walk)
{ {
unsigned int i; unsigned int i;
const void *_unused;
commit_object *commit;
if (walk == NULL) if (walk == NULL)
return; return;
git_revwalk_reset(walk); git_revwalk_reset(walk);
/* if the parent has more than PARENTS_PER_COMMIT parents,
* we had to allocate a separate array for those parents.
* make sure it's being free'd */
GIT_HASHTABLE_FOREACH(walk->commits, _unused, commit, {
if (commit->out_degree > PARENTS_PER_COMMIT)
free(commit->parents);
});
git_hashtable_free(walk->commits); git_hashtable_free(walk->commits);
git_pqueue_free(&walk->iterator_time); git_pqueue_free(&walk->iterator_time);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment