From 65c0d507d3becb989cb7dc4cdefb3e25c265e5ad Mon Sep 17 00:00:00 2001 From: John Scipione Date: Fri, 22 Feb 2019 23:52:43 -0800 Subject: [PATCH] MidiPlayer: Fix crash when dropping a midi file Window must be locked or MidiRunThread crashes with a segment violation. Change-Id: I9d5d0fa477475a9b5ba877aea3d6583690aacb2b Reviewed-on: https://review.haiku-os.org/c/1080 Reviewed-by: Barrett17 --- src/apps/midiplayer/MidiPlayerWindow.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/apps/midiplayer/MidiPlayerWindow.cpp b/src/apps/midiplayer/MidiPlayerWindow.cpp index 84bdef07fb..908b28529f 100644 --- a/src/apps/midiplayer/MidiPlayerWindow.cpp +++ b/src/apps/midiplayer/MidiPlayerWindow.cpp @@ -427,17 +427,18 @@ MidiPlayerWindow::_StopHook(int32 arg) void MidiPlayerWindow::StopHook() { - Lock(); + if (Lock()) { // we may be called from the synth's thread - fIsPlaying = false; + fIsPlaying = false; - fScopeView->SetPlaying(false); - fScopeView->Invalidate(); - fPlayButton->SetEnabled(true); - fPlayButton->SetLabel(B_TRANSLATE("Play")); + fScopeView->SetPlaying(false); + fScopeView->Invalidate(); + fPlayButton->SetEnabled(true); + fPlayButton->SetLabel(B_TRANSLATE("Play")); - Unlock(); + Unlock(); + } }