From e5bf164997d4580ae94fc1f2471a3bce6ac617b8 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Fri, 24 Sep 2010 11:15:17 +0200 Subject: Use tp_contact_info_field_copy() instead of creating a new field if found --- libempathy-gtk/empathy-contact-widget.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c index 3206af44b..f20ec81c4 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); -- cgit v1.2.3