Commit 1453bd20 by Vicent Marti

Merge pull request #2451 from libgit2/rb/round-up-pool-allocations

Round up pool alloc sizes for alignment
parents dcdb8500 5fa8cda9
......@@ -146,7 +146,7 @@ GIT_INLINE(void) pool_remove_page(
void *git_pool_malloc(git_pool *pool, uint32_t items)
{
git_pool_page *scan = pool->open, *prev;
uint32_t size = items * pool->item_size;
uint32_t size = ((items * pool->item_size) + 7) & ~7;
void *ptr = NULL;
pool->has_string_alloc = 0;
......
......@@ -38,19 +38,19 @@ void test_core_pool__1(void)
cl_assert(git_pool_malloc(&p, i) != NULL);
/* with fixed page size, allocation must end up with these values */
cl_assert(git_pool__open_pages(&p) == 1);
cl_assert(git_pool__full_pages(&p) == 505);
cl_assert_equal_i(1, git_pool__open_pages(&p));
cl_assert_equal_i(507, git_pool__full_pages(&p));
git_pool_clear(&p);
cl_git_pass(git_pool_init(&p, 1, 4100));
cl_git_pass(git_pool_init(&p, 1, 4120));
for (i = 2010; i > 0; i--)
cl_assert(git_pool_malloc(&p, i) != NULL);
/* with fixed page size, allocation must end up with these values */
cl_assert(git_pool__open_pages(&p) == 1);
cl_assert(git_pool__full_pages(&p) == 492);
cl_assert_equal_i(1, git_pool__open_pages(&p));
cl_assert_equal_i(492, git_pool__full_pages(&p));
git_pool_clear(&p);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment