Revert "[PATCH] plug memory leak in diff.c::diff_free_filepair()"
This reverts 068eac91ce
commit.
This commit is contained in:
9
diff.c
9
diff.c
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
Reference in New Issue
Block a user