Skip to content

Commit 809809b

Browse files
committed
diffcore-rename: reduce memory footprint by freeing blob data early
After running one round of estimate_similarity(), filespecs on either side will have populated their cnt_data fields, and we do not need the blob text anymore. We used to retain the blob data to optimize for smaller projects (not freeing the blob data here would mean that the final output phase would not have to re-read it), but we are efficient enough without such optimization for smaller projects anyway, and freeing memory early will help larger projects. Signed-off-by: Junio C Hamano <[email protected]>
1 parent 8282de9 commit 809809b

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

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)