summaryrefslogtreecommitdiff
path: root/diffcore-break.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-11-22 16:28:23 -0800
committerJunio C Hamano <gitster@pobox.com>2009-11-22 16:28:23 -0800
commita1b01c45d58bba35ec1c2533dfb8d87cfa08b19e (patch)
tree648414277bdb09c79e05bcf2a938a97225db598a /diffcore-break.c
parent82f05d5dd7ec54c4cd30f016c4380b21245e0d63 (diff)
parent809809bb75e8a65ef543ab706aab4791459be95c (diff)
Merge branch 'jk/maint-break-rename-reduce-memory'
* 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
Diffstat (limited to 'diffcore-break.c')
-rw-r--r--diffcore-break.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/diffcore-break.c b/diffcore-break.c
index d7097bb576..3a7b60a037 100644
--- a/diffcore-break.c
+++ b/diffcore-break.c
@@ -69,7 +69,7 @@ static int should_break(struct diff_filespec *src,
return 0; /* we do not break too small filepair */
if (diffcore_count_changes(src, dst,
- NULL, NULL,
+ &src->cnt_data, &dst->cnt_data,
0,
&src_copied, &literal_added))
return 0;
@@ -204,12 +204,16 @@ void diffcore_break(int break_score)
dp->score = score;
dp->broken_pair = 1;
+ diff_free_filespec_blob(p->one);
+ diff_free_filespec_blob(p->two);
free(p); /* not diff_free_filepair(), we are
* reusing one and two here.
*/
continue;
}
}
+ diff_free_filespec_data(p->one);
+ diff_free_filespec_data(p->two);
diff_q(&outq, p);
}
free(q->queue);