[folks] linking: check if details contain im-addresses or web-service-addresses



commit 46606bc028abdc680ea6debe2213c88092a65868
Author: Alban Crequy <alban crequy collabora co uk>
Date:   Mon Apr 11 13:22:15 2011 +0100

    linking: check if details contain im-addresses or web-service-addresses
    
    It fixes a regression in add_persona_from_details introduced by this commit:
    
    commit 4a8b46e6b7afd314807865586a60995dfe52896f
    Author: Raul Gutierrez Segales <raul gutierrez segales collabora co uk>
    Date:   Fri Apr 8 16:03:11 2011 +0100
    
        Only add available properties when linking Personas
    
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=647200

 backends/key-file/kf-persona-store.vala |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)
---
diff --git a/backends/key-file/kf-persona-store.vala b/backends/key-file/kf-persona-store.vala
index e3660ad..e8f2604 100644
--- a/backends/key-file/kf-persona-store.vala
+++ b/backends/key-file/kf-persona-store.vala
@@ -298,13 +298,18 @@ public class Folks.Backends.Kf.PersonaStore : Folks.PersonaStore
   public override async Folks.Persona? add_persona_from_details (
       HashTable<string, Value?> details) throws Folks.PersonaStoreError
     {
-      unowned Value val = details.lookup (Folks.PersonaStore.detail_key (
+      unowned Value? val = details.lookup (Folks.PersonaStore.detail_key (
             PersonaDetail.IM_ADDRESSES));
-      unowned HashTable<string, LinkedHashSet<string>> im_addresses =
-          (HashTable<string, LinkedHashSet<string>>) val.get_boxed ();
-      val = details.lookup (this.detail_key (PersonaDetail.WEB_SERVICE_ADDRESSES));
-      unowned HashMap<string, LinkedHashSet<string>> web_service_addresses =
-          (HashMap<string, LinkedHashSet<string>>) val.get_object ();
+      unowned HashTable<string, LinkedHashSet<string>> im_addresses
+          = val != null
+          ? (HashTable<string, LinkedHashSet<string>>) val.get_boxed ()
+          : null;
+      unowned Value? val2 = details.lookup
+          (this.detail_key (PersonaDetail.WEB_SERVICE_ADDRESSES));
+      unowned HashMap<string, LinkedHashSet<string>> web_service_addresses
+          = val2 != null
+          ? (HashMap<string, LinkedHashSet<string>>) val2.get_object ()
+          : null;
       uint im_addresses_size = (im_addresses == null)
           ? 0 : im_addresses.size ();
       uint web_service_addresses_size = (web_service_addresses == null)



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