diff options
author | Junio C Hamano <junkio@cox.net> | 2006-03-12 03:22:10 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-03-12 03:22:10 -0800 |
commit | c06c79667c9514aed00d29bcd80bd0cee7cc5a25 (patch) | |
tree | 75549257a77d8d32859a1128f5d01dce31dd5a3b /diffcore-rename.c | |
parent | ce2a34188b70c2d04ffdc1d9d3acc04d7a35c5c6 (diff) | |
download | git-c06c79667c9514aed00d29bcd80bd0cee7cc5a25.tar.gz |
diffcore-rename: somewhat optimized.
This changes diffcore-rename to reuse statistics information
gathered during similarity estimation, and updates the hashtable
implementation used to keep track of the statistics to be
denser. This seems to give better performance.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'diffcore-rename.c')
-rw-r--r-- | diffcore-rename.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c index 625b589fb7..b80b4320ff 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -166,6 +166,7 @@ static int estimate_similarity(struct diff_filespec *src, delta_limit = base_size * (MAX_SCORE-minimum_score) / MAX_SCORE; if (diffcore_count_changes(src->data, src->size, dst->data, dst->size, + &src->cnt_data, &dst->cnt_data, delta_limit, &src_copied, &literal_added)) return 0; @@ -306,6 +307,8 @@ void diffcore_rename(struct diff_options *options) m->score = estimate_similarity(one, two, minimum_score); } + free(two->cnt_data); + two->cnt_data = NULL; dst_cnt++; } /* cost matrix sorted by most to least similar pair */ |