mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge pull request #996 from jeffhostetler/jeffhostetler/register_rename_src
diffcore-rename: speed up register_rename_src
This commit is contained in:
@@ -81,6 +81,18 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)
|
|||||||
|
|
||||||
first = 0;
|
first = 0;
|
||||||
last = rename_src_nr;
|
last = rename_src_nr;
|
||||||
|
|
||||||
|
if (last > 0) {
|
||||||
|
struct diff_rename_src *src = &(rename_src[last-1]);
|
||||||
|
int cmp = strcmp(one->path, src->p->one->path);
|
||||||
|
if (!cmp)
|
||||||
|
return src;
|
||||||
|
if (cmp > 0) {
|
||||||
|
first = last;
|
||||||
|
goto append_it;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (last > first) {
|
while (last > first) {
|
||||||
int next = (last + first) >> 1;
|
int next = (last + first) >> 1;
|
||||||
struct diff_rename_src *src = &(rename_src[next]);
|
struct diff_rename_src *src = &(rename_src[next]);
|
||||||
@@ -94,6 +106,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)
|
|||||||
first = next+1;
|
first = next+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
append_it:
|
||||||
/* insert to make it at "first" */
|
/* insert to make it at "first" */
|
||||||
ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc);
|
ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc);
|
||||||
rename_src_nr++;
|
rename_src_nr++;
|
||||||
|
|||||||
Reference in New Issue
Block a user