From: Junio C Hamano Date: Wed, 14 Sep 2005 21:06:50 +0000 (-0700) Subject: Revert "[PATCH] plug memory leak in diff.c::diff_free_filepair()" X-Git-Tag: v0.99.7~42 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=19397b4521bcc27eb224413fb71519223b94290f;p=git.git Revert "[PATCH] plug memory leak in diff.c::diff_free_filepair()" This reverts 068eac91ce04b9aca163acb1927c3878c45d1a07 commit. --- diff --git a/diff.c b/diff.c index 1059049fb..05a0663d4 100644 --- a/diff.c +++ b/diff.c @@ -402,13 +402,14 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only) return 0; } -void diff_free_filespec(struct diff_filespec *s) +void diff_free_filespec_data(struct diff_filespec *s) { if (s->should_free) free(s->data); else if (s->should_munmap) munmap(s->data, s->size); - free(s); + s->should_free = s->should_munmap = 0; + s->data = NULL; } static void prep_temp_blob(struct diff_tempfile *temp, @@ -767,8 +768,8 @@ struct diff_filepair *diff_queue(struct diff_queue_struct *queue, void diff_free_filepair(struct diff_filepair *p) { - diff_free_filespec(p->one); - diff_free_filespec(p->two); + diff_free_filespec_data(p->one); + diff_free_filespec_data(p->two); free(p); } diff --git a/diffcore-break.c b/diffcore-break.c index b0c8461e1..06f9a7f0e 100644 --- a/diffcore-break.c +++ b/diffcore-break.c @@ -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(d->two); - diff_free_filespec(c->one); + diff_free_filespec_data(d->two); + diff_free_filespec_data(c->one); free(d); free(c); } diff --git a/diffcore.h b/diffcore.h index 633d1ae5c..f1b5ca748 100644 --- a/diffcore.h +++ b/diffcore.h @@ -43,7 +43,7 @@ extern void fill_filespec(struct diff_filespec *, const unsigned char *, unsigned short); extern int diff_populate_filespec(struct diff_filespec *, int); -extern void diff_free_filespec(struct diff_filespec *); +extern void diff_free_filespec_data(struct diff_filespec *); struct diff_filepair { struct diff_filespec *one;