[ekiga] Fixed big bug in the presentity view code



commit f6aab87941a7f43efe0c36d54c7e46267bdec949
Author: Julien Puydt <jpuydt gnome org>
Date:   Tue Dec 8 18:44:22 2009 +0100

    Fixed big bug in the presentity view code
    
    The code was taking a pointer out of a smart pointer, and then attached it to another one... that was bound to fail.
    
    Now it does no memory management, which is pretty bad too, but is less crashy...

 lib/engine/gui/gtk-frontend/presentity-view.cpp |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/lib/engine/gui/gtk-frontend/presentity-view.cpp b/lib/engine/gui/gtk-frontend/presentity-view.cpp
index 7198edb..190f398 100644
--- a/lib/engine/gui/gtk-frontend/presentity-view.cpp
+++ b/lib/engine/gui/gtk-frontend/presentity-view.cpp
@@ -39,7 +39,7 @@
 
 struct _PresentityViewPrivate
 {
-  Ekiga::PresentityPtr presentity;
+  Ekiga::Presentity* presentity;
   boost::signals::connection updated_conn;
   boost::signals::connection removed_conn;
 
@@ -63,7 +63,7 @@ static void on_presentity_removed (PresentityView* self);
 /* declaration of internal api */
 
 static void presentity_view_set_presentity (PresentityView* self,
-					    Ekiga::PresentityPtr presentity);
+					    Ekiga::Presentity* presentity);
 
 static void presentity_view_unset_presentity (PresentityView* self);
 
@@ -99,7 +99,7 @@ on_presentity_removed (PresentityView* self)
 
 static void
 presentity_view_set_presentity (PresentityView* self,
-				Ekiga::PresentityPtr presentity)
+				Ekiga::Presentity* presentity)
 {
   g_return_if_fail ( !self->priv->presentity);
 
@@ -115,7 +115,7 @@ presentity_view_unset_presentity (PresentityView* self)
 {
   if (self->priv->presentity) {
 
-    self->priv->presentity.reset ();
+    self->priv->presentity = NULL;
     self->priv->updated_conn.disconnect ();
     self->priv->removed_conn.disconnect ();
   }
@@ -153,7 +153,7 @@ presentity_view_set_property (GObject* obj,
 
   case PRESENTITY_VIEW_PROP_PRESENTITY:
     presentity = (Ekiga::Presentity*)g_value_get_pointer (value);
-    presentity_view_set_presentity (self, Ekiga::PresentityPtr(presentity));
+    presentity_view_set_presentity (self, presentity);
 
     break;
 
@@ -195,6 +195,8 @@ presentity_view_init (GTypeInstance* instance,
 
   self->priv = new PresentityViewPrivate;
 
+  self->priv->presentity = NULL;
+
   self->priv->presence_image = gtk_image_new ();
   gtk_box_pack_start (GTK_BOX (self), self->priv->presence_image,
 		      FALSE, FALSE, 2);



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