ardour/libs
Robin Gareus bff55cc881
Fix crash when deleting MIDI trigger
The Model must be destroyed after the iterator, otherwise
the iterator's d'tor will cause memory corruption trying to lock
the model:

```
Invalid read of size 4
   at pthread_rwlock_unlock (pthread_rwlock_unlock.c:39)
   by Glib::Threads::RWLock::ReaderLock::~ReaderLock() (threads.h:828)
   by void boost::checked_delete<Glib::Threads::RWLock::ReaderLock>(Glib::Threads::RWLock::ReaderLock*) (checked_delete.hpp:36)
   by boost::detail::sp_counted_impl_p<Glib::Threads::RWLock::ReaderLock>::dispose() (sp_counted_impl.hpp:89)
   by boost::detail::sp_counted_base::release() (sp_counted_base_gcc_atomic.hpp:120)
   by boost::detail::shared_count::~shared_count() (shared_count.hpp:432)
   by boost::shared_ptr<Glib::Threads::RWLock::ReaderLock>::~shared_ptr() (shared_ptr.hpp:335)
   by Evoral::Sequence<Temporal::Beats>::const_iterator::~const_iterator() (Sequence.h:224)
   by ARDOUR::MIDITrigger::~MIDITrigger() (triggerbox.cc:2037)
   by ARDOUR::MIDITrigger::~MIDITrigger() (triggerbox.cc:2039)
   by ARDOUR::TriggerBoxThread::delete_trigger(ARDOUR::Trigger*) (triggerbox.cc:4386)
   by ARDOUR::TriggerBoxThread::thread_work() (triggerbox.cc:4314)
   by ARDOUR::TriggerBoxThread::_thread_work(void*) (triggerbox.cc:4285)
   by fake_thread_start(void*) (pthread_utils.cc:101)
   by start_thread (pthread_create.c:477)
   by clone (clone.S:95)
 Address 0x28229798 is 24 bytes inside a block of size 56 free'd
   at free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
   by Glib::Threads::RWLock::~RWLock() (in /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1.3.0)
   by Evoral::Sequence<Temporal::Beats>::~Sequence() (Sequence.h:68)
   by ARDOUR::AutomatableSequence<Temporal::Beats>::~AutomatableSequence() (automatable_sequence.h:31)
   by ARDOUR::MidiModel::~MidiModel() (midi_model.h:58)
   by ARDOUR::MidiModel::~MidiModel() (midi_model.h:58)
   by void boost::checked_delete<ARDOUR::MidiModel>(ARDOUR::MidiModel*) (checked_delete.hpp:36)
   by boost::detail::sp_counted_impl_p<ARDOUR::MidiModel>::dispose() (sp_counted_impl.hpp:89)
   by boost::detail::sp_counted_base::release() (sp_counted_base_gcc_atomic.hpp:120)
   by boost::detail::shared_count::~shared_count() (shared_count.hpp:432)
   by boost::shared_ptr<ARDOUR::MidiModel>::~shared_ptr() (shared_ptr.hpp:335)
   by ARDOUR::MIDITrigger::~MIDITrigger() (triggerbox.cc:2037)
   by ARDOUR::MIDITrigger::~MIDITrigger() (triggerbox.cc:2039)
   by ARDOUR::TriggerBoxThread::delete_trigger(ARDOUR::Trigger*) (triggerbox.cc:4386)
   by ARDOUR::TriggerBoxThread::thread_work() (triggerbox.cc:4314)
   by ARDOUR::TriggerBoxThread::_thread_work(void*) (triggerbox.cc:4285)
   by fake_thread_start(void*) (pthread_utils.cc:101)
   by start_thread (pthread_create.c:477)
   by clone (clone.S:95)
```
2022-03-02 18:12:50 +01:00
..
appleutility wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
ardour Fix crash when deleting MIDI trigger 2022-03-02 18:12:50 +01:00
ardouralsautil wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
audiographer Amend f322c4ded7, clean up includes, fix visibility 2022-01-28 02:29:11 +01:00
auscan wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
backends wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
canvas Remove 18 month old debug messages 2022-02-01 22:01:41 +01:00
clearlooks-newer wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
evoral smf_source: implement SMF::UsedChannels as a bitset; move midi screening into load_model() 2022-03-01 10:11:14 -06:00
fluidsynth wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
fst wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
gtkmm2ext Replace Glib::Threads with PBD::Thread (2/2) 2022-03-01 01:34:35 +01:00
hidapi wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
libltc wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
lua Add API to modify Lua Metatable and set Metamethods 2022-01-24 06:23:16 +01:00
midi++2 wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
panners wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
pbd Fix possible race (BaseUI creation vs x-thread signal-emission) 2022-03-01 17:19:20 +01:00
plugins wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
ptformat wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
qm-dsp wscript: improve configure messages slightly 2022-01-22 22:19:07 +01:00
surfaces fix accidental insertion of "x1" 2022-02-09 10:08:01 -07:00
temporal temporal: add some basic BBT time tests 2022-02-21 11:55:44 -07:00
vamp-plugins wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
vamp-pyin wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
vfork wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
vst3 Backport VST3 diagnostic pragma 2021-03-01 22:14:38 +01:00
waveview Replace Glib::Threads with PBD::Thread (1/2) 2022-03-01 01:33:49 +01:00
widgets Dim text rendered with ShadedPlusSign 2022-01-31 01:58:42 +01:00
zita-convolver wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
zita-resampler wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00