From 8f6a38d37f9945912e32b896e70da8b72bf474e2 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Tue, 25 Jun 2019 22:57:24 +0100 Subject: [PATCH] Added 'clear()' method to slab allocator. --- src/util/slab_allocator.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/util/slab_allocator.h b/src/util/slab_allocator.h index d4ef91bc..d441857f 100644 --- a/src/util/slab_allocator.h +++ b/src/util/slab_allocator.h @@ -27,7 +27,14 @@ class slab_allocator_t public: slab_allocator_t(): slabs_(), current_slab_(0), current_slab_end_(0) {} - ~slab_allocator_t() { std::for_each(slabs_.rbegin(), slabs_.rend(), free); } + ~slab_allocator_t() { clear(); } + + void clear() + { + std::for_each(slabs_.rbegin(), slabs_.rend(), free); + slabs_.clear(); + current_slab_ = current_slab_end_ = 0; + } void *alloc(size_t size) { -- 2.50.1