diff --git a/src/idxmap.h b/src/idxmap.h index 74304bb97..4122a89fe 100644 --- a/src/idxmap.h +++ b/src/idxmap.h @@ -70,6 +70,7 @@ static kh_inline khint_t idxentry_hash(const git_index_entry *e) #define git_idxmap_valid_index(h, idx) (idx != kh_end(h)) #define git_idxmap_has_data(h, idx) kh_exist(h, idx) +#define git_idxmap_resize(h,s) kh_resize(idx, h, s) #define git_idxmap_free(h) kh_destroy(idx, h), h = NULL #define git_idxmap_clear(h) kh_clear(idx, h) diff --git a/src/index.c b/src/index.c index 03873f427..5c7bd90dd 100644 --- a/src/index.c +++ b/src/index.c @@ -1564,10 +1564,8 @@ int git_index__fill(git_index *index, const git_vector *source_entries) return -1; } - if (git_vector_size_hint(&index->entries, source_entries->length) < 0) { - git_mutex_unlock(&index->lock); - return -1; - } + git_vector_size_hint(&index->entries, source_entries->length); + git_idxmap_resize(index->entries_map, source_entries->length * 1.3); git_vector_foreach(source_entries, i, source_entry) { git_index_entry *entry = NULL;