diff options
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/globalpool.hpp')
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/globalpool.hpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/globalpool.hpp b/vespamalloc/src/vespamalloc/malloc/globalpool.hpp index a3930c7cca1..69f2a2cf820 100644 --- a/vespamalloc/src/vespamalloc/malloc/globalpool.hpp +++ b/vespamalloc/src/vespamalloc/malloc/globalpool.hpp @@ -122,11 +122,17 @@ AllocPoolT<MemBlockPtrT>::exchangeAlloc(SizeClassT sc, typename AllocPoolT<MemBl } template <typename MemBlockPtrT> +size_t +AllocPoolT<MemBlockPtrT>::computeExactSize(size_t sz) { + return (((sz + (_alwaysReuseLimit - 1)) / _alwaysReuseLimit) * _alwaysReuseLimit); +} + +template <typename MemBlockPtrT> typename AllocPoolT<MemBlockPtrT>::ChunkSList * AllocPoolT<MemBlockPtrT>::exactAlloc(size_t exactSize, SizeClassT sc, typename AllocPoolT<MemBlockPtrT>::ChunkSList * csl) { - size_t adjustedSize((( exactSize + (_alwaysReuseLimit - 1))/_alwaysReuseLimit)*_alwaysReuseLimit); + size_t adjustedSize = computeExactSize(exactSize); void *exactBlock = _dataSegment.getBlock(adjustedSize, sc); MemBlockPtrT mem(exactBlock, MemBlockPtrT::unAdjustSize(adjustedSize)); csl->add(mem); |