ardour/libs
Robin Gareus 58641d2a35
Fix crash when session-load fails while creating Routes
When loading the state of a Route fails (here
"unknown enumerator SurroundMaster in PBD::EnumWriter"), the
routes which have already been loaded are not added to the
Session's routelist.

Already existing routes that have an InternalSend or have
a circular reference:

The Send's `_send_from` holds a shared pointer
`<Route>(shared_from_this())` to the Route, and the
Route's ProcessorList contains the InternalSend.

This leads to various
"SessionHandleRef exists across session deletion" of
IO, Ports, GraphNode, Graph, etc
which causes issues when loading another session.

Session::destroy() cleans calls drop_references for
each route in the RouteList, which breaks the circular
dependency (InternalSend drops reference to Route).
But here the RouteList is empty.

Crash fixed:
 * Load a session that fails to load a Route
  (here a session created on with the vapor branch, on master)
 * Then load another session without restarting Ardour.
2024-01-06 04:19:24 +01:00
..
aaf Update libAAF (upstream v0.5-2-g4dfb754) 2023-12-26 14:35:14 +01:00
appleutility wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
ardour Fix crash when session-load fails while creating Routes 2024-01-06 04:19:24 +01:00
ardouralsautil wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
audiographer wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
auscan wscript: sanitize strings from fetch_*_revision_date early instead of applying str() all over 2023-10-15 10:47:16 -06:00
backends Fix callback order of port-dis/connections 2023-12-02 23:34:58 +01:00
canvas Fix alloc-dealloc-mismatch (video image) 2023-12-12 20:36:55 +01:00
clearlooks-newer Clearlooks: GtkCList is deprecated and not used by Ardour 2023-11-19 20:28:44 +01:00
ctrl-interface midisurface: use correct virtual method for note off 2023-10-31 09:56:40 -06:00
evoral Sanitize MIDI track names, remove unprintable chars #9553 2023-11-28 00:29:19 +01:00
fluidsynth wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
fst wscript: sanitize strings from fetch_*_revision_date early instead of applying str() all over 2023-10-15 10:47:16 -06:00
gtkmm2ext Allow to override visibility tracker 2023-11-26 20:06:35 +01:00
hidapi wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
libltc wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
lua wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
midi++2 wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
panners wscript: don't add pointless -DHAVE_X for each mandatory subdir 2023-10-15 10:47:16 -06:00
pbd Fix localtime_r check (#9554) 2023-11-28 17:05:03 +01:00
plugins wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
ptformat wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
qm-dsp wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
surfaces UF8 for everyone 2023-12-12 03:38:50 +01:00
temporal temporal: remove TempoMap::insert_time() and use shift() instead 2023-11-19 12:14:10 -07:00
vamp-plugins wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
vamp-pyin wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
vfork wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
vst3 Use <atomic> instead of <stdatomic.h> in libc++ fix 2023-09-23 23:53:05 +02:00
waveview wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
widgets wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
zita-convolver wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
zita-resampler wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00