@ -402,13 +402,14 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only)
@@ -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,
@@ -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);
}