On Tuesday 20 March 2012 22:31:57 Lamarque V. Souza wrote: > WeatherEngine::~WeatherEngine() calls > WeatherEngine::unloadIons(), which tries to use the invalid > Plasma::DataEngineManager::self().
Since DataEngineManager uses K_GLOBAL_STATIC internally, just use the isDestroyed() method to know if it has already been destroyed, before calling self(). More precisely, either add a isDestroyed method to the public class, which calls the one in the K_GLOBAL_STATIC, or let self() return 0 when privateDataEngineManagerSelf.isDestroyed(). On a more philosophical note: this is exactly why "intelligent destructors" are to be avoided at all costs. All this wouldn't happen if the WeatherEngine destructor didn't call methods that do stuff. -- David Faure, [email protected], http://www.davidfaure.fr Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5
