From cfe9077fc39f54c02de0e8a03723c22accd5a8f5 Mon Sep 17 00:00:00 2001 From: chanhung Date: Mon, 14 Jul 2025 01:44:55 -0700 Subject: [PATCH] reset next_size/start_size when calling purge_memory --- include/boost/pool/pool.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/boost/pool/pool.hpp b/include/boost/pool/pool.hpp index 3143a70..63eb9a8 100644 --- a/include/boost/pool/pool.hpp +++ b/include/boost/pool/pool.hpp @@ -310,6 +310,7 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t const size_type requested_size; size_type next_size; size_type start_size; + size_type init_next_size; size_type max_size; //! finds which POD in the list 'chunk' was allocated from. @@ -375,7 +376,7 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t const size_type nnext_size = 32, const size_type nmax_size = 0) : - list(0, 0), requested_size(nrequested_size), next_size(nnext_size), start_size(nnext_size),max_size(nmax_size) + list(0, 0), requested_size(nrequested_size), init_next_size(nnext_size), next_size(nnext_size), start_size(nnext_size),max_size(nmax_size) { //! Constructs a new empty Pool that can be used to allocate chunks of size RequestedSize. //! \param nrequested_size Requested chunk size //! \param nnext_size parameter is of type size_type, @@ -688,7 +689,7 @@ bool pool::purge_memory() list.invalidate(); this->first = 0; - next_size = start_size; + next_size = start_size = init_next_size; return true; }