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