d774535fe916c0a1382bbc3ac795c92e17b8d3d4
This issue could be seen when dragging an arrangement marker beyond the bottom of the list in the right edge. IIUC, std::reverse_iterator<Iter>::operator* creates a temporary iterator which it then dereferences. This is a problem because what we are derefencing is a Gtk::TreeIter<Gtk::TreeRow>. gtkmm documentation for Gtk::TreeIter< T >::operator* states, "The returned reference is implemented by casting from *this, and so the returned reference is only valid while this iter is." Additionally, cpp documentation for std::reverse_iterator states, "std::reverse_iterator does not work with iterators whose dereference returns a reference to a member of *this." We also are not advancing this iterator at all, so whether it is reverse or not is irrelevant (we just want the last one). Thus, *prev(rows.end ()) instead of *rows.rbegin ().
Please see the Ardour web site at https://ardour.org/ for all documentation..
For information on building ardour:
https://ardour.org/development.html
Description
Languages
C++
56.5%
C
39.6%
JavaScript
1.3%
Lua
0.9%
Python
0.6%
Other
0.9%