зеркало из https://github.com/microsoft/git.git
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
This commit is contained in:
Коммит
a1b01c45d5
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
/* We do not need the text anymore */
|
||||
diff_free_filespec_blob(two);
|
||||
}
|
||||
dst_cnt++;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче