LV2: less heavy-handed approach to lifecycle issues
commit7476dce329398ed184153cdc66f7d4a34f2d55e1
authorKrzysztof Foltman <wdev@foltman.com>
Mon, 5 Jan 2015 23:20:42 +0000 (5 23:20 +0000)
committerKrzysztof Foltman <wdev@foltman.com>
Mon, 5 Jan 2015 23:20:42 +0000 (5 23:20 +0000)
treeef118135691688790246bf912615cdd748b36f55
parentaacc9e80d874ba44160d2a59f41cb7c9161b9b6f
LV2: less heavy-handed approach to lifecycle issues

The crash on exit was caused by the custom widgets persisting after the .so
file has been unloaded. This is problematic if those widgets implement a
custom finalize method, because that method will be inaccessible after .so
gets unloaded.

This traces back to a hasty and incorrect 30c3 fix for other lifecycle issues,
which was motivated by the fact that notebook containers were destroyed
before the contained widgets. In this version I hope both situations
are handled correctly - the notebooks are deleted after the child
widgets, but both them and all the other widgets (including custom ones)
get destroyed before the end of the gui_cleanup function, when the finalize
method is still accessible.
src/Makefile.am
src/gui.cpp
src/gui_controls.cpp