Skip to content

Commit 9a6b9cd

Browse files
committed
Merge branch 'jk/maint-break-rename-reduce-memory' into maint
* jk/maint-break-rename-reduce-memory: diffcore-rename: reduce memory footprint by freeing blob data early diffcore-break: save cnt_data for other phases diffcore-break: free filespec data as we go
2 parents c206224 + 809809b commit 9a6b9cd

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

diffcore-break.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ static int should_break(struct diff_filespec *src,
6969
return 0; /* we do not break too small filepair */
7070

7171
if (diffcore_count_changes(src, dst,
72-
NULL, NULL,
72+
&src->cnt_data, &dst->cnt_data,
7373
0,
7474
&src_copied, &literal_added))
7575
return 0;
@@ -204,12 +204,16 @@ void diffcore_break(int break_score)
204204
dp->score = score;
205205
dp->broken_pair = 1;
206206

207+
diff_free_filespec_blob(p->one);
208+
diff_free_filespec_blob(p->two);
207209
free(p); /* not diff_free_filepair(), we are
208210
* reusing one and two here.
209211
*/
210212
continue;
211213
}
212214
}
215+
diff_free_filespec_data(p->one);
216+
diff_free_filespec_data(p->two);
213217
diff_q(&outq, p);
214218
}
215219
free(q->queue);

diffcore-rename.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -523,10 +523,13 @@ void diffcore_rename(struct diff_options *options)
523523
this_src.dst = i;
524524
this_src.src = j;
525525
record_if_better(m, &this_src);
526+
/*
527+
* Once we run estimate_similarity,
528+
* We do not need the text anymore.
529+
*/
526530
diff_free_filespec_blob(one);
531+
diff_free_filespec_blob(two);
527532
}
528-
/* We do not need the text anymore */
529-
diff_free_filespec_blob(two);
530533
dst_cnt++;
531534
}
532535

0 commit comments

Comments
 (0)