aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-individual-store.c
diff options
context:
space:
mode:
authorTravis Reitter <treitter@gmail.com>2010-06-22 23:43:53 +0800
committerTravis Reitter <treitter@gmail.com>2010-07-21 07:12:35 +0800
commit6bf4569e50d1df275281b790adcae934b8a53ce7 (patch)
tree63c3da38226fff7c8822a1a58b07da59fd25e796 /libempathy-gtk/empathy-individual-store.c
parent10ee532d6097cac699ad317d296d4126079b772f (diff)
downloadgsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.tar
gsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.tar.gz
gsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.tar.bz2
gsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.tar.lz
gsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.tar.xz
gsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.tar.zst
gsoc2013-empathy-6bf4569e50d1df275281b790adcae934b8a53ce7.zip
Avoid potential segfaults if there are no contacts on the first pass.
Diffstat (limited to 'libempathy-gtk/empathy-individual-store.c')
-rw-r--r--libempathy-gtk/empathy-individual-store.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index 3390f31df..1931106a4 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -820,7 +820,7 @@ individual_store_manager_setup (gpointer user_data)
{
EmpathyIndividualStore *self = user_data;
EmpathyIndividualStorePriv *priv = GET_PRIV (self);
- GList *contacts;
+ GList *individuals;
/* Signal connection. */
@@ -839,10 +839,13 @@ individual_store_manager_setup (gpointer user_data)
G_CALLBACK (individual_store_groups_changed_cb), self);
/* Add contacts already created. */
- contacts = empathy_individual_manager_get_members (priv->manager);
- individual_store_members_changed_cb (priv->manager, "initial add",
- contacts, NULL, 0, self);
- g_list_free (contacts);
+ individuals = empathy_individual_manager_get_members (priv->manager);
+ if (individuals != NULL && FOLKS_IS_INDIVIDUAL (individuals->data))
+ {
+ individual_store_members_changed_cb (priv->manager, "initial add",
+ individuals, NULL, 0, self);
+ g_list_free (individuals);
+ }
priv->setup_idle_id = 0;
return FALSE;