ekiga r6925 - in trunk: . lib/engine/components/gmconf-personal-details



Author: jpuydt
Date: Thu Sep 11 11:36:37 2008
New Revision: 6925
URL: http://svn.gnome.org/viewvc/ekiga?rev=6925&view=rev

Log:
Made sure the notifiers are removed, to avoid crashes.

Modified:
   trunk/ChangeLog
   trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp
   trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.h

Modified: trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp
==============================================================================
--- trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp	(original)
+++ trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp	Thu Sep 11 11:36:37 2008
@@ -51,12 +51,22 @@
 
 Gmconf::PersonalDetails::PersonalDetails ()
 {
-  gm_conf_notifier_add ("/apps/ekiga/general/personal_data/full_name",
-                        something_changed_nt, this);
-  gm_conf_notifier_add ("/apps/ekiga/general/personal_data/short_status",
-                        something_changed_nt, this);
-  gm_conf_notifier_add ("/apps/ekiga/general/personal_data/long_status",
-                        something_changed_nt, this);
+  full_name_notifier
+    = gm_conf_notifier_add ("/apps/ekiga/general/personal_data/full_name",
+			    something_changed_nt, this);
+  short_status_notifier
+    = gm_conf_notifier_add ("/apps/ekiga/general/personal_data/short_status",
+			    something_changed_nt, this);
+  long_status_notifier
+  = gm_conf_notifier_add ("/apps/ekiga/general/personal_data/long_status",
+			  something_changed_nt, this);
+}
+
+Gmconf::PersonalDetails::~PersonalDetails ()
+{
+  gm_conf_notifier_remove (full_name_notifier);
+  gm_conf_notifier_remove (short_status_notifier);
+  gm_conf_notifier_remove (long_status_notifier);
 }
 
 const std::string

Modified: trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.h
==============================================================================
--- trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.h	(original)
+++ trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.h	Thu Sep 11 11:36:37 2008
@@ -48,7 +48,7 @@
 
     PersonalDetails ();
 
-    virtual ~PersonalDetails () {};
+    virtual ~PersonalDetails ();
 
     /*** Service Implementation ***/
   public:
@@ -77,6 +77,11 @@
     /*** public but only to be called by C callbacks ***/
   public:
     void something_changed ();
+
+  private:
+    void* full_name_notifier;
+    void* short_status_notifier;
+    void* long_status_notifier;
   };
 };
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]