Revert "[PATCH] plug memory leak in diff.c::diff_free_filepair()"

This reverts 068eac91ce commit.
This commit is contained in:
Junio C Hamano
2005-09-14 14:06:50 -07:00
parent 705a7148ba
commit 19397b4521
3 changed files with 8 additions and 7 deletions

9
diff.c
View File

@ -402,13 +402,14 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only)
return 0; return 0;
} }
void diff_free_filespec(struct diff_filespec *s) void diff_free_filespec_data(struct diff_filespec *s)
{ {
if (s->should_free) if (s->should_free)
free(s->data); free(s->data);
else if (s->should_munmap) else if (s->should_munmap)
munmap(s->data, s->size); 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, 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) void diff_free_filepair(struct diff_filepair *p)
{ {
diff_free_filespec(p->one); diff_free_filespec_data(p->one);
diff_free_filespec(p->two); diff_free_filespec_data(p->two);
free(p); free(p);
} }

View File

@ -231,8 +231,8 @@ static void merge_broken(struct diff_filepair *p,
dp = diff_queue(outq, d->one, c->two); dp = diff_queue(outq, d->one, c->two);
dp->score = p->score; dp->score = p->score;
diff_free_filespec(d->two); diff_free_filespec_data(d->two);
diff_free_filespec(c->one); diff_free_filespec_data(c->one);
free(d); free(d);
free(c); free(c);
} }

View File

@ -43,7 +43,7 @@ extern void fill_filespec(struct diff_filespec *, const unsigned char *,
unsigned short); unsigned short);
extern int diff_populate_filespec(struct diff_filespec *, int); 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_filepair {
struct diff_filespec *one; struct diff_filespec *one;