Skip to content

Commit

Permalink
Merge pull request #996 from jeffhostetler/jeffhostetler/register_ren…
Browse files Browse the repository at this point in the history
…ame_src

diffcore-rename: speed up register_rename_src
  • Loading branch information
dscho committed Mar 12, 2021
2 parents 9ed7ab5 + cca708f commit 49b8249
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions diffcore-rename.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,18 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)

first = 0;
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) {
int next = first + ((last - first) >> 1);
struct diff_rename_src *src = &(rename_src[next]);
Expand All @@ -97,6 +109,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)
first = next+1;
}

append_it:
/* insert to make it at "first" */
ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc);
rename_src_nr++;
Expand Down

0 comments on commit 49b8249

Please sign in to comment.