summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-06-09 23:23:53 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-06-10 00:06:21 +0200
commit2c11d2eeb550ed2f795c714829b3fd3788b2ab68 (patch)
tree9da4de00ee6c33e8734a4e708e1857cd99071dee
parent281da0043ca6fe8c5ba6bc24c24c10d80db93956 (diff)
downloadlibgit2-cmn/treebuilder-insert-sorted.tar.gz
treebuilder: insert sortedcmn/treebuilder-insert-sorted
By inserting in the right position, we can keep the vector sorted, making entry insertion almost twice as fast.
-rw-r--r--src/tree.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/tree.c b/src/tree.c
index 94f779eca..b64efe460 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -460,7 +460,7 @@ static int append_entry(
git_oid_cpy(&entry->oid, id);
entry->attr = (uint16_t)filemode;
- if (git_vector_insert(&bld->entries, entry) < 0) {
+ if (git_vector_insert_sorted(&bld->entries, entry, NULL) < 0) {
git__free(entry);
return -1;
}
@@ -671,7 +671,7 @@ int git_treebuilder_insert(
entry = alloc_entry(filename);
GITERR_CHECK_ALLOC(entry);
- if (git_vector_insert(&bld->entries, entry) < 0) {
+ if (git_vector_insert_sorted(&bld->entries, entry, NULL) < 0) {
git__free(entry);
return -1;
}