aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-09-26 22:41:07 +0200
committerMax Kellermann <max@duempel.org>2013-09-26 22:41:07 +0200
commit7fa3b7a267e2e42c06a8350a807b2445b9588372 (patch)
tree30eafd2bd72f65c1f28b5b88e11182c741d93443
parentf3fc76e3c821ae9a55ad9f5d1e71370b37431909 (diff)
downloadmpd-7fa3b7a267e2e42c06a8350a807b2445b9588372.tar.gz
mpd-7fa3b7a267e2e42c06a8350a807b2445b9588372.tar.xz
mpd-7fa3b7a267e2e42c06a8350a807b2445b9588372.zip
PlayerThread: simplify "buffer empty" assertion
-rw-r--r--src/MusicBuffer.hxx11
-rw-r--r--src/PlayerThread.cxx8
2 files changed, 12 insertions, 7 deletions
diff --git a/src/MusicBuffer.hxx b/src/MusicBuffer.hxx
index fe14fe300..d2b23d43a 100644
--- a/src/MusicBuffer.hxx
+++ b/src/MusicBuffer.hxx
@@ -43,6 +43,17 @@ public:
*/
MusicBuffer(unsigned num_chunks);
+#ifndef NDEBUG
+ /**
+ * Check whether the buffer is empty. This call is not
+ * protected with the mutex, and may only be used while this
+ * object is inaccessible to other threads.
+ */
+ bool IsEmptyUnsafe() const {
+ return buffer.IsEmpty();
+ }
+#endif
+
/**
* Returns the total number of reserved chunks in this buffer. This
* is the same value which was passed to the constructor
diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx
index 6cf8e556b..3e03e5978 100644
--- a/src/PlayerThread.cxx
+++ b/src/PlayerThread.cxx
@@ -1143,13 +1143,7 @@ player_task(gpointer arg)
pc->Lock();
player_command_finished_locked(pc);
-#ifndef NDEBUG
- /* in the DEBUG build, check for leaked
- music_chunk objects by freeing the
- music_buffer */
- delete player_buffer;
- player_buffer = new MusicBuffer(pc->buffer_chunks);
-#endif
+ assert(player_buffer->IsEmptyUnsafe());
break;