32a0c6a3ff7286b2b78efed64d1438d85142df31
TMM ports cannot exist without a backend. This fixes crashes where the PortEngine is re-initialized (backend change): Previously, TMM ports were only dropped (and recreated) in TMM::restart() called from ARDOUR::init_post_engine(). When starting a new backend the old one is already destroyed, but TM still held reference to Ports owned by that backend. Calling the port's d'tor caused a memory corruption trying to acquire the backend's port_callback_mutex: e.g. When creating new session with a different backend from a running instance, or unit-test after call to AudioEngine::destroy(): https://pastebin.com/4D6pLA5s
Please see the Ardour web site at http://ardour.org/ for all documentation..
For information on building ardour:
http://ardour.org/development.html
Description
Languages
C++
56.5%
C
39.6%
JavaScript
1.3%
Lua
0.9%
Python
0.6%
Other
0.9%