From 1702e98fdf63d0dcc2fc1fa95a668c48601c815a Mon Sep 17 00:00:00 2001 From: Max Kellermann <max@musicpd.org> Date: Sun, 23 Sep 2018 19:15:28 +0200 Subject: [PATCH] util/SliceBuffer: move code to DiscardMemory() --- src/util/SliceBuffer.hxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/util/SliceBuffer.hxx b/src/util/SliceBuffer.hxx index 55572c592..9b2afc98c 100644 --- a/src/util/SliceBuffer.hxx +++ b/src/util/SliceBuffer.hxx @@ -87,6 +87,13 @@ public: return n_allocated == buffer.size(); } + void DiscardMemory() noexcept { + assert(empty()); + + n_initialized = 0; + buffer.Discard(); + } + template<typename... Args> T *Allocate(Args&&... args) { assert(n_initialized <= buffer.size()); @@ -131,9 +138,7 @@ public: /* give memory back to the kernel when the last slice was freed */ if (n_allocated == 0) { - buffer.Discard(); - n_initialized = 0; - available = nullptr; + DiscardMemory(); } } };