fixed crash in case of framesLeft() being less or equal zero while instrument::playNote is being called

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.3@572 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2007-10-30 17:56:32 +00:00
parent d369b6c0bf
commit 337578b1ce
3 changed files with 19 additions and 5 deletions

View File

@@ -1,3 +1,10 @@
2007-10-30 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
* src/core/note_play_handle.cpp:
fixed crash in case of framesLeft() being less or equal zero while
instrument::playNote is being called (e.g. when decreasing release
while a note is active)
2007-10-08 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
merged some of Javiers recent changes to trunk:

View File

@@ -2,8 +2,8 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.50)
AC_INIT(lmms, 0.3.0-svn20071008, lmms-devel/at/lists/dot/sf/dot/net)
AM_INIT_AUTOMAKE(lmms, 0.3.0-svn20071008)
AC_INIT(lmms, 0.3.0-svn20071030, lmms-devel/at/lists/dot/sf/dot/net)
AM_INIT_AUTOMAKE(lmms, 0.3.0-svn20071030)
AM_CONFIG_HEADER(config.h)
@@ -657,6 +657,7 @@ AC_CONFIG_FILES([Makefile
plugins/organic/Makefile
plugins/patman/Makefile
plugins/singerbot/Makefile
plugins/stereo_enhancer/Makefile
plugins/stk/Makefile
plugins/stk/mallets/Makefile
plugins/triple_oscillator/Makefile

View File

@@ -169,10 +169,16 @@ void notePlayHandle::play( bool _try_parallelizing )
>= m_frames )
{
noteOff( m_frames - m_totalFramesPlayed );
}
}
// play note!
m_instrumentTrack->playNote( this, _try_parallelizing );
// under some circumstances we're called even if there's nothing to play
// therefore do an additional check which fixes crash e.g. when
// decreasing release of an instrument-track while the note is active
if( framesLeft() > 0 )
{
// play note!
m_instrumentTrack->playNote( this, _try_parallelizing );
}
if( m_released == TRUE )
{