diff options
Diffstat (limited to 'src/pack.c')
| -rw-r--r-- | src/pack.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/pack.c b/src/pack.c index f36f3cf6b..75ac98186 100644 --- a/src/pack.c +++ b/src/pack.c @@ -760,13 +760,14 @@ git_off_t get_delta_base( } else if (type == GIT_OBJ_REF_DELTA) { /* If we have the cooperative cache, search in it first */ if (p->has_cache) { - size_t pos; - struct git_pack_entry key; + khiter_t k; + git_oid oid; - git_oid_fromraw(&key.sha1, base_info); - if (!git_vector_bsearch(&pos, &p->cache, &key)) { + git_oid_fromraw(&oid, base_info); + k = kh_get(oid, p->idx_cache, &oid); + if (k != kh_end(p->idx_cache)) { *curpos += 20; - return ((struct git_pack_entry *)git_vector_get(&p->cache, pos))->offset; + return ((struct git_pack_entry *)kh_value(p->idx_cache, k))->offset; } } /* The base entry _must_ be in the same pack */ |
