aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-persona-view.c
diff options
context:
space:
mode:
authorTravis Reitter <travis.reitter@collabora.co.uk>2011-06-28 05:31:25 +0800
committerJonny Lamb <jonnylamb@gnome.org>2011-08-22 17:36:33 +0800
commitd1d3a49fc919ed734b77a6e94afb2d49109182f2 (patch)
tree8c329ef17d60f70dba7f6695378142e229ab44e2 /libempathy-gtk/empathy-persona-view.c
parent358fab1eb85cecb34ca45f492be2e623ab443a5e (diff)
downloadgsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.tar
gsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.tar.gz
gsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.tar.bz2
gsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.tar.lz
gsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.tar.xz
gsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.tar.zst
gsoc2013-empathy-d1d3a49fc919ed734b77a6e94afb2d49109182f2.zip
Don't assume that all TpfPersonas contain valid TpContacts
Helps: bgo#653599 - Empathy shouldn't assume all TpfPersonas contain a valid TpContact Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
Diffstat (limited to 'libempathy-gtk/empathy-persona-view.c')
-rw-r--r--libempathy-gtk/empathy-persona-view.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libempathy-gtk/empathy-persona-view.c b/libempathy-gtk/empathy-persona-view.c
index 6d1629651..5cb77c94b 100644
--- a/libempathy-gtk/empathy-persona-view.c
+++ b/libempathy-gtk/empathy-persona-view.c
@@ -174,6 +174,7 @@ query_tooltip_cb (EmpathyPersonaView *self,
{
EmpathyPersonaViewPriv *priv = GET_PRIV (self);
FolksPersona *persona;
+ TpContact *tp_contact;
EmpathyContact *contact;
GtkTreeModel *model;
GtkTreeIter iter;
@@ -201,8 +202,14 @@ query_tooltip_cb (EmpathyPersonaView *self,
if (persona == NULL)
goto OUT;
- contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
- TPF_PERSONA (persona)));
+ tp_contact = tpf_persona_get_contact (TPF_PERSONA (persona));
+ if (tp_contact == NULL)
+ {
+ g_clear_object (&persona);
+ goto OUT;
+ }
+
+ contact = empathy_contact_dup_from_tp_contact (tp_contact);
if (priv->tooltip_widget == NULL)
{