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();
 		}
 	}
 };