diff options
| author | Vicent Martà <tanoku@gmail.com> | 2012-05-02 15:59:02 -0700 |
|---|---|---|
| committer | Vicent Martà <tanoku@gmail.com> | 2012-05-02 15:59:02 -0700 |
| commit | 40879facad0337d954d4904e212af3b36cdb9465 (patch) | |
| tree | aea730551948c67bb1fb88098cf8a67d3ed3211d /src/cache.c | |
| parent | 2218fd57a50ceb851cb131939bf0747e072e40f6 (diff) | |
| parent | 3fd99be98a91416dae77d65fe593965a0723fa8c (diff) | |
| download | libgit2-40879facad0337d954d4904e212af3b36cdb9465.tar.gz | |
Merge branch 'new-error-handling' into development
Conflicts:
.travis.yml
include/git2/diff.h
src/config_file.c
src/diff.c
src/diff_output.c
src/mwindow.c
src/path.c
tests-clar/clar_helpers.c
tests-clar/object/tree/frompath.c
tests/t00-core.c
tests/t03-objwrite.c
tests/t08-tag.c
tests/t10-refs.c
tests/t12-repo.c
tests/t18-status.c
tests/test_helpers.c
tests/test_main.c
Diffstat (limited to 'src/cache.c')
| -rw-r--r-- | src/cache.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/cache.c b/src/cache.c index 9e566792a..31da3c36e 100644 --- a/src/cache.c +++ b/src/cache.c @@ -9,21 +9,14 @@ #include "repository.h" #include "commit.h" #include "thread-utils.h" +#include "util.h" #include "cache.h" int git_cache_init(git_cache *cache, size_t size, git_cached_obj_freeptr free_ptr) { if (size < 8) size = 8; - - /* round up size to closest power of 2 */ - size--; - size |= size >> 1; - size |= size >> 2; - size |= size >> 4; - size |= size >> 8; - size |= size >> 16; - size++; + size = git__size_t_powerof2(size); cache->size_mask = size - 1; cache->lru_count = 0; @@ -32,11 +25,10 @@ int git_cache_init(git_cache *cache, size_t size, git_cached_obj_freeptr free_pt git_mutex_init(&cache->lock); cache->nodes = git__malloc(size * sizeof(git_cached_obj *)); - if (cache->nodes == NULL) - return GIT_ENOMEM; + GITERR_CHECK_ALLOC(cache->nodes); memset(cache->nodes, 0x0, size * sizeof(git_cached_obj *)); - return GIT_SUCCESS; + return 0; } void git_cache_free(git_cache *cache) |
