From 3b49f27c4e458aca7d239aecfb04e19b62ce3343 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 23 Sep 2008 10:49:01 +0000 Subject: [PATCH] if adding play handle failed for some reason, set internal pointer to it to NULL git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1700 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 18 ++++++++++++++++++ src/gui/file_browser.cpp | 7 +++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e5553b08..a9a3b047c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2008-09-23 Tobias Doerffel + + * src/gui/file_browser.cpp: + if adding play handle failed for some reason, set internal pointer to + it to NULL + + * include/play_handle.h: + made QThread pointer const + + * include/mixer.h: + * src/core/mixer.cpp: + - lock playHandle mutex in mixer::clear() + - moved implementation of mixer::removePlayHandle() from header to + source-file + - only delete play-handle in mixer::removePlayHandle() if it was + found in playHandle vector (fixes crash when previewing a preset + under high load) + 2008-09-22 Tobias Doerffel * CMakeLists.txt: diff --git a/src/gui/file_browser.cpp b/src/gui/file_browser.cpp index 543352686..1131649f9 100644 --- a/src/gui/file_browser.cpp +++ b/src/gui/file_browser.cpp @@ -292,8 +292,11 @@ void listView::mousePressEvent( QMouseEvent * _me ) } if( m_previewPlayHandle != NULL ) { - engine::getMixer()->addPlayHandle( - m_previewPlayHandle ); + if( !engine::getMixer()->addPlayHandle( + m_previewPlayHandle ) ) + { + m_previewPlayHandle = NULL; + } } m_pphMutex.unlock(); }