[empathy] Use tp_contact_info_field_copy() instead of creating a new field if found



commit e5bf164997d4580ae94fc1f2471a3bce6ac617b8
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Fri Sep 24 11:15:17 2010 +0200

    Use tp_contact_info_field_copy() instead of creating a new field if found

 libempathy-gtk/empathy-contact-widget.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index 3206af4..f20ec81 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -293,7 +293,6 @@ contact_widget_details_update_edit (EmpathyContactWidget *information)
       TpContactInfoField *field;
       InfoFieldData *field_data;
       GList *ll;
-      GStrv value = NULL;
       GtkWidget *w;
 
       field_data = find_info_field_data (spec->name);
@@ -308,13 +307,20 @@ contact_widget_details_update_edit (EmpathyContactWidget *information)
         {
           field = ll->data;
           if (!tp_strdiff (field->field_name, spec->name))
-            {
-              value = field->field_value;
-              break;
-            }
+            break;
+        }
+
+      if (field != NULL)
+        {
+          /* We found the field, make a copy for the details_to_set list */
+          field = tp_contact_info_field_copy (field);
+        }
+      else
+        {
+          field = tp_contact_info_field_new (spec->name, spec->parameters,
+              NULL);
         }
 
-      field = tp_contact_info_field_new (spec->name, spec->parameters, value);
       information->details_to_set = g_list_prepend (information->details_to_set,
           field);
 



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