Skip to content

Commit 19397b4

Browse files
author
Junio C Hamano
committed
Revert "[PATCH] plug memory leak in diff.c::diff_free_filepair()"
This reverts 068eac9 commit.
1 parent 705a714 commit 19397b4

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

diff.c

+5-4
Original file line numberDiff line numberDiff line change
@@ -402,13 +402,14 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only)
402402
return 0;
403403
}
404404

405-
void diff_free_filespec(struct diff_filespec *s)
405+
void diff_free_filespec_data(struct diff_filespec *s)
406406
{
407407
if (s->should_free)
408408
free(s->data);
409409
else if (s->should_munmap)
410410
munmap(s->data, s->size);
411-
free(s);
411+
s->should_free = s->should_munmap = 0;
412+
s->data = NULL;
412413
}
413414

414415
static void prep_temp_blob(struct diff_tempfile *temp,
@@ -767,8 +768,8 @@ struct diff_filepair *diff_queue(struct diff_queue_struct *queue,
767768

768769
void diff_free_filepair(struct diff_filepair *p)
769770
{
770-
diff_free_filespec(p->one);
771-
diff_free_filespec(p->two);
771+
diff_free_filespec_data(p->one);
772+
diff_free_filespec_data(p->two);
772773
free(p);
773774
}
774775

diffcore-break.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,8 @@ static void merge_broken(struct diff_filepair *p,
231231

232232
dp = diff_queue(outq, d->one, c->two);
233233
dp->score = p->score;
234-
diff_free_filespec(d->two);
235-
diff_free_filespec(c->one);
234+
diff_free_filespec_data(d->two);
235+
diff_free_filespec_data(c->one);
236236
free(d);
237237
free(c);
238238
}

diffcore.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ extern void fill_filespec(struct diff_filespec *, const unsigned char *,
4343
unsigned short);
4444

4545
extern int diff_populate_filespec(struct diff_filespec *, int);
46-
extern void diff_free_filespec(struct diff_filespec *);
46+
extern void diff_free_filespec_data(struct diff_filespec *);
4747

4848
struct diff_filepair {
4949
struct diff_filespec *one;

0 commit comments

Comments
 (0)