From 1800bde3038f6af07d4b9383f30580c3da95c210 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Fri, 29 May 2009 23:34:51 +0200
Subject: player_thread: reinitialize music_buffer in !NDEBUG

To check for leaked music_chunk objects, free the music buffer on
CLOSE_AUDIO.  This invokes an assertion check which ensures that all
chunks have been returned to the buffer.
---
 src/player_thread.c | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'src/player_thread.c')

diff --git a/src/player_thread.c b/src/player_thread.c
index 4ea23020d..f00d1aba8 100644
--- a/src/player_thread.c
+++ b/src/player_thread.c
@@ -780,6 +780,15 @@ static gpointer player_task(G_GNUC_UNUSED gpointer arg)
 		case PLAYER_COMMAND_CLOSE_AUDIO:
 			audio_output_all_close();
 			player_command_finished();
+
+#ifndef NDEBUG
+			/* in the DEBUG build, check for leaked
+			   music_chunk objects by freeing the
+			   music_buffer */
+			music_buffer_free(player_buffer);
+			player_buffer = music_buffer_new(pc.buffer_chunks);
+#endif
+
 			break;
 
 		case PLAYER_COMMAND_EXIT:
-- 
cgit v1.2.3