[PATCH] plug memory leak in diff.c::diff_free_filepair()
When I run git-diff-tree on big change, it seems the command eats so much memory. so I just put git under valgrind to see what's going on. diff_free_filespec_data() doesn't free diff_filespec itself. [jc: I ended up doing things slightly differently from Yasushi's patch. The original idea was to use free_filespec_data() only to free the data portion and keep useing the filespec itself, but no existing code seems to do things that way, so I just yanked that part out.] Signed-off-by: Yasushi SHOJI <yashi@atmark-techno.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
committed by
Junio C Hamano
parent
e54c5ea93e
commit
068eac91ce
@@ -231,8 +231,8 @@ static void merge_broken(struct diff_filepair *p,
|
||||
|
||||
dp = diff_queue(outq, d->one, c->two);
|
||||
dp->score = p->score;
|
||||
diff_free_filespec_data(d->two);
|
||||
diff_free_filespec_data(c->one);
|
||||
diff_free_filespec(d->two);
|
||||
diff_free_filespec(c->one);
|
||||
free(d);
|
||||
free(c);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user