* fixed crash bug in MidiModel::const_iterator::operator++
authorHans Baier <hansfbaier@googlemail.com>
Tue, 6 May 2008 21:31:49 +0000 (21:31 +0000)
committerHans Baier <hansfbaier@googlemail.com>
Tue, 6 May 2008 21:31:49 +0000 (21:31 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@3325 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/midi_model.cc

index d26630abf8f90ee3510bf02cfe68fecff4117035..4990ede97899797872a85d2ae86756cf4a8f93d2 100644 (file)
@@ -121,7 +121,7 @@ MidiModel::const_iterator::const_iterator(const MidiModel& model, double t)
                ++_note_iter;
        }
 
-       if (earliest_control.automation_list && earliest_control.x < _event.time())
+       if (earliest_control.automation_list.get() && earliest_control.x < _event.time())
                model.control_to_midi_event(_event, earliest_control);
        else
                _control_iter = _control_iters.end();
@@ -328,6 +328,8 @@ size_t MidiModel::read(MidiRingBuffer& dst, nframes_t start, nframes_t nframes,
 bool MidiModel::control_to_midi_event(MIDI::Event& ev,
                const MidiControlIterator& iter) const
 {
+       assert(iter.automation_list.get() != 0);
+       
        switch (iter.automation_list->parameter().type()) {
        case MidiCCAutomation:
                if (ev.size() < 3)