Comment 8 for bug 761368

Revision history for this message
Loïc Molinari (loic.molinari) wrote :

It happens to me sometimes when I enable/disable a plugin in ccsm, and always when I disable the Unity plugin itself. Before my last fixes pushed to partly fix #685552, it was crashing earlier in sigc::signal_base::impl().

Not that when a plugin is added/removed, all the plugins loaded are destroyed and recreated. After studying a bit the reason of that crash, it seems like the PanelMenuView is not freed after the Unity plugin is destroyed, the signals connected are not disconnected and can still be called. Here PanelMenuView::OnActiveWindowChanged is called even though most of the other objects have been destroyed, in the Refresh method it's crashing attempting to create a texture from a GpuDevice which is NULL (already destroyed).

To fix that issue, IMO we should make sure the PanelMenuView is correctly freed at the unity plugin destruction.