diff options
| author | Junio C Hamano <gitster@pobox.com> | 2012-05-25 12:04:36 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2012-05-25 12:04:36 -0700 |
| commit | ec04a275b495a7d786b49aeca2eef7f45fb00c48 (patch) | |
| tree | 0f7b5613f0befd0c256f1fcbf68bef32bb031841 | |
| parent | fca9e0013eeaad45bff38f66667d2791a1edc53f (diff) | |
| parent | 654ad400c27653a138b028cdd35a09b0c69c7ef0 (diff) | |
| download | git-ec04a275b495a7d786b49aeca2eef7f45fb00c48.tar.gz | |
Merge branch 'mh/ref-api'
Fixes a performance regression in the earlier series.
| -rw-r--r-- | refs.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -273,6 +273,12 @@ static void add_entry_to_dir(struct ref_dir *dir, struct ref_entry *entry) { ALLOC_GROW(dir->entries, dir->nr + 1, dir->alloc); dir->entries[dir->nr++] = entry; + /* optimize for the case that entries are added in order */ + if (dir->nr == 1 || + (dir->nr == dir->sorted + 1 && + strcmp(dir->entries[dir->nr - 2]->name, + dir->entries[dir->nr - 1]->name) < 0)) + dir->sorted = dir->nr; } /* |
