From b5db8e7bad586502d7fbb135f008c94479eda0d0 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Wed, 20 Aug 2014 20:29:04 +0200 Subject: [PATCH 1/2] Pattern: disconnect PianoRoll before clearing current pattern Closes #1083. --- src/tracks/pattern.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tracks/pattern.cpp b/src/tracks/pattern.cpp index 3ba6b3614..ae38f9651 100644 --- a/src/tracks/pattern.cpp +++ b/src/tracks/pattern.cpp @@ -651,6 +651,8 @@ patternView::~patternView() { if( engine::pianoRoll()->currentPattern() == m_pat ) { + engine::pianoRoll()->disconnect( this ); + engine::pianoRoll()->setCurrentPattern( NULL ); // we have to have the song-editor to stop playing if it played // us before From 759c3e1cb78286850e0d0cfd41dbf8f8738d059f Mon Sep 17 00:00:00 2001 From: Vesa Date: Thu, 21 Aug 2014 18:40:29 +0300 Subject: [PATCH 2/2] Use stack allocation in srccpy --- plugins/watsyn/Watsyn.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/watsyn/Watsyn.h b/plugins/watsyn/Watsyn.h index 3e0992144..5ab15f34a 100644 --- a/plugins/watsyn/Watsyn.h +++ b/plugins/watsyn/Watsyn.h @@ -186,7 +186,9 @@ private: const int margin = 64; // copy to temp array - float * tmp = new float [ GRAPHLEN + margin ]; + float tmps [ GRAPHLEN + margin ]; // temp array in stack + float * tmp = &tmps[0]; + memcpy( tmp, _src, sizeof( float ) * GRAPHLEN ); memcpy( tmp + GRAPHLEN, _src, sizeof( float ) * margin ); SRC_STATE * src_state = src_new( SRC_SINC_FASTEST, 1, &err ); @@ -200,8 +202,6 @@ private: err = src_process( src_state, &src_data ); if( err ) { qDebug( "Watsyn SRC error: %s", src_strerror( err ) ); } src_delete( src_state ); - - delete tmp; } // memcpy utilizing cubic interpolation