]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
0023504: [CEA 2193] Segmentation fault at SALOME close (GEOM/Preferences)
authorvsr <vsr@opencascade.com>
Fri, 10 Nov 2017 09:09:08 +0000 (12:09 +0300)
committervsr <vsr@opencascade.com>
Wed, 15 Nov 2017 14:12:16 +0000 (17:12 +0300)
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_Application.h

index e770b1508d7bed27c2cada3fee2b34a46c926a7a..529725ad47d3e5183cf87be964a468d85ea79bca 100644 (file)
@@ -246,6 +246,14 @@ int LightApp_Application::lastStudyId = 0;
 //since the 'toolbar marker' is not unique, find index of first occurrence of the
 //'toolbar marker' in the array and check that next string is name of the toolbar
 
+void LightAppCleanUpAppResources()
+{
+  if ( LightApp_Application::_prefs_ ) {
+    delete LightApp_Application::_prefs_;
+    LightApp_Application::_prefs_ = 0;
+  }
+}
+
 namespace
 {
   int getToolbarMarkerIndex( QByteArray input, const QStringList& aFlags ) {
@@ -439,6 +447,7 @@ LightApp_Application::~LightApp_Application()
   savePreferences();
   delete mySelMgr;
   delete myScreenHelper;
+  myPrefs = 0;
 }
 
 /*!Start application.*/
@@ -2128,6 +2137,7 @@ LightApp_Preferences* LightApp_Application::preferences( const bool crt ) const
   {
     _prefs_ = new LightApp_Preferences( resourceMgr() );
     that->createPreferences( _prefs_ );
+    qAddPostRoutine( LightAppCleanUpAppResources );
   }
 
   that->myPrefs = _prefs_;
index b7d2fb9ec993b98dd3fbf496882cc7965adcc035..cd9ce2e159e5633b75975d48701bdb29235e60e6 100644 (file)
@@ -343,6 +343,8 @@ protected:
 
   static int                          lastStudyId;
   QStringList                         myUserWmTypes;
+
+  friend void LightAppCleanUpAppResources();
 };
 
 #ifdef WIN32