Need suggestion on how to fix the common crash in plasma-desktop (kdelibs related)
    David Faure 
    faure at kde.org
       
    Wed Mar 21 08:37:45 GMT 2012
    
    
  
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, faure at kde.org, http://www.davidfaure.fr
Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5
    
    
More information about the kde-core-devel
mailing list