]> git.0d.be Git - empathy.git/commitdiff
Don't leak references to the contacts returned from empathy_contact_dup_from_folks_in...
authorTravis Reitter <treitter@gmail.com>
Thu, 8 Jul 2010 18:46:00 +0000 (11:46 -0700)
committerTravis Reitter <treitter@gmail.com>
Tue, 20 Jul 2010 23:12:36 +0000 (16:12 -0700)
libempathy-gtk/empathy-individual-dialogs.c
libempathy-gtk/empathy-individual-menu.c
libempathy-gtk/empathy-individual-store.c
libempathy-gtk/empathy-individual-view.c

index b9a843c571d41ba4bd0b066c30b95c8c8e79734c..b36567832a23cbadf498e56099fb838c7b15e9fa 100644 (file)
@@ -27,6 +27,7 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n-lib.h>
 
+#include <telepathy-glib/util.h>
 #include <folks/folks.h>
 
 #include <libempathy/empathy-individual-manager.h>
@@ -149,4 +150,6 @@ empathy_new_individual_dialog_show_with_individual (GtkWindow *parent,
     gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
 
   gtk_widget_show (dialog);
+
+  tp_clear_object (&contact);
 }
index 380d0ac5781a54fa5b78f5cd025e9a6fa380691c..be5895ac5296a3e746a65d7bf3b1fe410bf33e26 100644 (file)
@@ -378,6 +378,8 @@ individual_log_menu_item_activate_cb (FolksIndividual *individual)
 
   empathy_log_window_show (empathy_contact_get_account (contact),
       empathy_contact_get_id (contact), FALSE, NULL);
+
+  g_object_unref (contact);
 }
 
 GtkWidget *
@@ -532,6 +534,8 @@ individual_info_menu_item_activate_cb (FolksIndividual *individual)
 
   contact = empathy_contact_dup_from_folks_individual (individual);
   empathy_contact_information_dialog_show (contact, NULL);
+
+  tp_clear_object (&contact);
 }
 
 GtkWidget *
@@ -564,6 +568,8 @@ individual_edit_menu_item_activate_cb (FolksIndividual *individual)
 
   contact = empathy_contact_dup_from_folks_individual (individual);
   empathy_contact_edit_dialog_show (contact, NULL);
+
+  tp_clear_object (&contact);
 }
 
 GtkWidget *
index 2153d1ab85eea663bda7860890d9b93fe4023f8b..e8df8394f838a5be8b49d1f9eff5efa40b819151 100644 (file)
@@ -430,6 +430,8 @@ individual_store_add_individual (EmpathyIndividualStore *self,
     }
 
   individual_store_contact_update (self, individual);
+
+  tp_clear_object (&contact);
 }
 
 static void
@@ -1820,6 +1822,8 @@ individual_store_get_individual_status_icon_with_icon_name (
     }
 
   g_free (icon_name);
+  tp_clear_object (&contact);
+
   return pixbuf_status;
 }
 
index a8b294c2b764e4c939542ee561182d8803f53922..d6aec8271949f93c9df68f4742198f921e6c3fb9 100644 (file)
@@ -488,6 +488,7 @@ individual_view_file_drag_received (GtkWidget *view,
   empathy_send_file_from_uri_list (contact, sel_data);
 
   g_object_unref (individual);
+  tp_clear_object (&contact);
 
   return TRUE;
 }
@@ -898,7 +899,6 @@ individual_view_row_activated (GtkTreeView *view,
     return;
 
   contact = empathy_contact_dup_from_folks_individual (individual);
-
   if (contact != NULL)
     {
       DEBUG ("Starting a chat");
@@ -908,6 +908,7 @@ individual_view_row_activated (GtkTreeView *view,
     }
 
   g_object_unref (individual);
+  tp_clear_object (&contact);
 }
 
 static void