diff options
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-utils.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index 972abe65e..c5016c235 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -1167,31 +1167,28 @@ empathy_sasl_channel_supports_mechanism (TpChannel *channel, FolksIndividual * empathy_create_individual_from_tp_contact (TpContact *contact) { - TpAccount *account; - TpConnection *connection; - TpfPersonaStore *store; GeeSet *personas; TpfPersona *persona; FolksIndividual *individual; - connection = tp_contact_get_connection (contact); - account = tp_connection_get_account (connection); - - store = tpf_persona_store_new (account); + persona = tpf_persona_dup_for_contact (contact); + if (persona == NULL) + { + DEBUG ("Failed to get a persona for %s", + tp_contact_get_identifier (contact)); + return NULL; + } personas = GEE_SET ( gee_hash_set_new (FOLKS_TYPE_PERSONA, g_object_ref, g_object_unref, g_direct_hash, g_direct_equal)); - persona = tpf_persona_new (contact, store); - gee_collection_add (GEE_COLLECTION (personas), persona); individual = folks_individual_new (personas); g_clear_object (&persona); g_clear_object (&personas); - g_object_unref (store); return individual; } |