Blind fix for MIDI iteration bug.
authorDavid Robillard <d@drobilla.net>
Mon, 29 Dec 2014 20:12:10 +0000 (15:12 -0500)
committerDavid Robillard <d@drobilla.net>
Mon, 29 Dec 2014 20:12:10 +0000 (15:12 -0500)
libs/evoral/src/Sequence.cpp

index dd891a0ac2c15e027c38ccd349e6f5b01e7ce4ce..22f090beca77ddad95e0b635f55f0d5fc629e9f4 100644 (file)
@@ -357,11 +357,11 @@ Sequence<Time>::const_iterator::operator++()
        }
 
        // Use the next earliest controller iff it's earlier than the note event
-       if (_control_iter != _control_iters.end() && _control_iter->x != DBL_MAX) {
-               if (_type == NIL || _control_iter->x < earliest_t.to_double()) {
-                       _type = CONTROL;
-                       earliest_t = Time(_control_iter->x);
-               }
+       if (_control_iter != _control_iters.end() &&
+           _control_iter->list && _control_iter->x != DBL_MAX &&
+           (_control_iter->x < earliest_t.to_double() || _type == NIL)) {
+               _type = CONTROL;
+               earliest_t = Time(_control_iter->x);
        }
 
        // Use the next earliest SysEx iff it's earlier than the controller