Browse Source

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
maint
Junio C Hamano 15 years ago
parent
commit
9a6b9cdd72
  1. 6
      diffcore-break.c
  2. 7
      diffcore-rename.c

6
diffcore-break.c

@ -69,7 +69,7 @@ static int should_break(struct diff_filespec *src, @@ -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) @@ -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);

7
diffcore-rename.c

@ -523,10 +523,13 @@ void diffcore_rename(struct diff_options *options) @@ -523,10 +523,13 @@ void diffcore_rename(struct diff_options *options)
this_src.dst = i;
this_src.src = j;
record_if_better(m, &this_src);
/*
* Once we run estimate_similarity,
* We do not need the text anymore.
*/
diff_free_filespec_blob(one);
diff_free_filespec_blob(two);
}
/* We do not need the text anymore */
diff_free_filespec_blob(two);
dst_cnt++;
}


Loading…
Cancel
Save