~ken-vandine/ubuntu/precise/folks/precise

« back to all changes in this revision

Viewing changes to folks/individual.vala

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-03-18 16:49:27 UTC
  • mfrom: (1.2.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20110318164927-ho97ckhsq73glhm4
Tags: 0.4.1-0ubuntu1
* New upstream release
  - Fixed crasher when reconnecting a Telepathy account

Show diffs side-by-side

added added

removed removed

Lines of Context:
1104
1104
      var phone_numbers_set =
1105
1105
          new HashTable<unowned string, unowned FieldDetails> (
1106
1106
              str_hash, str_equal);
 
1107
      var phones = new GLib.List<FieldDetails> ();
 
1108
 
1107
1109
      foreach (var persona in this._persona_list)
1108
1110
        {
1109
1111
          var phone_details = persona as PhoneDetails;
1118
1120
                  if (existing != null)
1119
1121
                    existing.extend_parameters (fd.parameters);
1120
1122
                  else
1121
 
                    phone_numbers_set.insert (fd.value, fd);
 
1123
                    {
 
1124
                      var new_fd = new FieldDetails (fd.value);
 
1125
                      new_fd.extend_parameters (fd.parameters);
 
1126
                      phone_numbers_set.insert (fd.value, new_fd);
 
1127
                      phones.prepend ((owned) new_fd);
 
1128
                    }
1122
1129
                }
1123
1130
            }
1124
1131
        }
1125
 
      this._phone_numbers = phone_numbers_set.get_values ();
 
1132
      /* Set the private member directly to avoid iterating this list again */
 
1133
      phones.reverse ();
 
1134
      this._phone_numbers = (owned) phones;
1126
1135
 
1127
1136
      this.notify_property ("phone-numbers");
1128
1137
    }
1133
1142
       * If the same URL exist multiple times we merge the parameters. */
1134
1143
      var emails_set = new HashTable<unowned string, unowned FieldDetails> (
1135
1144
          str_hash, str_equal);
 
1145
      var emails = new GLib.List<FieldDetails> ();
 
1146
 
1136
1147
      foreach (var persona in this._persona_list)
1137
1148
        {
1138
1149
          var email_details = persona as EmailDetails;
1147
1158
                  if (existing != null)
1148
1159
                    existing.extend_parameters (fd.parameters);
1149
1160
                  else
1150
 
                    emails_set.insert (fd.value, fd);
 
1161
                    {
 
1162
                      var new_fd = new FieldDetails (fd.value);
 
1163
                      new_fd.extend_parameters (fd.parameters);
 
1164
                      emails_set.insert (fd.value, new_fd);
 
1165
                      emails.prepend ((owned) new_fd);
 
1166
                    }
1151
1167
                }
1152
1168
            }
1153
1169
        }
1154
 
      this._email_addresses = emails_set.get_values ();
 
1170
      /* Set the private member directly to avoid iterating this list again */
 
1171
      emails.reverse ();
 
1172
      this._email_addresses = (owned) emails;
1155
1173
 
1156
1174
      this.notify_property ("email-addresses");
1157
1175
    }