Commit e069bbe5 authored by Jeremy Whiting's avatar Jeremy Whiting
Browse files

Port folks to libgee 0.8.

Added hash_static and equal_static to AbstractFieldDetails.
Use AbstractFieldDetails hash_static and equal_static where needed.
parent 5b5360bf
......@@ -490,8 +490,8 @@ public class Edsf.Persona : Folks.Persona,
private HashMultiMap<string, ImFieldDetails> _im_addresses =
new HashMultiMap<string, ImFieldDetails> (null, null,
(GLib.HashFunc) ImFieldDetails.hash,
(GLib.EqualFunc) ImFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/**
* {@inheritDoc}
......@@ -744,37 +744,37 @@ public class Edsf.Persona : Folks.Persona,
this._gender = Gender.UNSPECIFIED;
this._phone_numbers = new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._phone_numbers_ro = this._phone_numbers.read_only_view;
this._email_addresses = new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._email_addresses_ro = this._email_addresses.read_only_view;
this._notes = new HashSet<NoteFieldDetails> (
(GLib.HashFunc) NoteFieldDetails.hash,
(GLib.EqualFunc) NoteFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._notes_ro = this._notes.read_only_view;
this._urls = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._urls_ro = this._urls.read_only_view;
this._postal_addresses = new HashSet<PostalAddressFieldDetails> (
(GLib.HashFunc) PostalAddressFieldDetails.hash,
(GLib.EqualFunc) PostalAddressFieldDetails.equal);
AbstractFieldDetails<PostalAddress>.hash_static,
AbstractFieldDetails<PostalAddress>.equal_static);
this._postal_addresses_ro = this._postal_addresses.read_only_view;
this._local_ids = new HashSet<string> ();
this._local_ids_ro = this._local_ids.read_only_view;
this._web_service_addresses =
new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._groups = new HashSet<string> ();
this._groups_ro = this._groups.read_only_view;
this._roles = new HashSet<RoleFieldDetails> (
(GLib.HashFunc) RoleFieldDetails.hash,
(GLib.EqualFunc) RoleFieldDetails.equal);
AbstractFieldDetails<Role>.hash_static,
AbstractFieldDetails<Role>.equal_static);
this._roles_ro = this._roles.read_only_view;
this._update (this._contact);
......@@ -958,8 +958,8 @@ public class Edsf.Persona : Folks.Persona,
private void _update_roles ()
{
var new_roles = new HashSet<RoleFieldDetails> (
(GLib.HashFunc) RoleFieldDetails.hash,
(GLib.EqualFunc) RoleFieldDetails.equal);
AbstractFieldDetails<Role>.hash_static,
AbstractFieldDetails<Role>.equal_static);
var default_role_fd = this._get_default_role ();
if (default_role_fd != null)
......@@ -1079,8 +1079,8 @@ public class Edsf.Persona : Folks.Persona,
{
var new_services = new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var services = this.contact.get_attribute ("X-FOLKS-WEB-SERVICES-IDS");
if (services != null)
......@@ -1112,8 +1112,8 @@ public class Edsf.Persona : Folks.Persona,
private void _update_emails ()
{
var new_email_addresses = new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var attrs = this.contact.get_attributes (E.ContactField.EMAIL);
foreach (var attr in attrs)
......@@ -1141,8 +1141,8 @@ public class Edsf.Persona : Folks.Persona,
private void _update_notes ()
{
var new_notes = new HashSet<NoteFieldDetails> (
(GLib.HashFunc) NoteFieldDetails.hash,
(GLib.EqualFunc) NoteFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var n = this._get_property<string> ("note");
if (n != null && n != "")
......@@ -1349,8 +1349,8 @@ public class Edsf.Persona : Folks.Persona,
{
var im_eds_map = this._get_im_eds_map ();
var new_im_addresses = new HashMultiMap<string, ImFieldDetails> (null,
null, (GLib.HashFunc) ImFieldDetails.hash,
(GLib.EqualFunc) ImFieldDetails.equal);
null, AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
foreach (var im_proto in im_eds_map.get_keys ())
{
......@@ -1554,8 +1554,8 @@ public class Edsf.Persona : Folks.Persona,
private void _update_phones ()
{
var new_phone_numbers = new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var attrs = this.contact.get_attributes (E.ContactField.TEL);
foreach (var attr in attrs)
......@@ -1643,8 +1643,8 @@ public class Edsf.Persona : Folks.Persona,
private void _update_addresses ()
{
var new_postal_addresses = new HashSet<PostalAddressFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var attrs = this.contact.get_attributes (E.ContactField.ADDRESS);
foreach (unowned E.VCardAttribute attr in attrs)
......
......@@ -144,8 +144,8 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
* table of them to set as the new property value */
var new_im_addresses = new HashMultiMap<string, ImFieldDetails> (
null, null,
(GLib.HashFunc) ImFieldDetails.hash,
(GLib.EqualFunc) ImFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
foreach (var protocol2 in im_addresses.get_keys ())
{
......@@ -231,8 +231,8 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
var new_web_service_addresses =
new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
foreach (var web_service2 in web_service_addresses.get_keys ())
{
......@@ -280,12 +280,13 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
this.iid, this.display_id);
this._im_addresses = new HashMultiMap<string, ImFieldDetails> (
null, null, ImFieldDetails.hash, (EqualFunc) ImFieldDetails.equal);
null, null, AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._web_service_addresses =
new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/* Load the IM addresses from the key file */
unowned KeyFile key_file = ((Kf.PersonaStore) this.store).get_key_file ();
......
......@@ -148,13 +148,14 @@ public class Swf.Persona : Folks.Persona,
private HashMultiMap<string, ImFieldDetails> _im_addresses =
new HashMultiMap<string, ImFieldDetails> (null, null,
ImFieldDetails.hash, (EqualFunc) ImFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses =
new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/**
* {@inheritDoc}
......@@ -388,8 +389,8 @@ public class Swf.Persona : Folks.Persona,
}
var urls = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var website = contact.get_value ("url");
if (website != null)
......
......@@ -320,14 +320,14 @@ internal class Tpf.PersonaStoreCache : Folks.ObjectCache<Tpf.Persona>
}
var email_address_set = new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var phone_number_set = new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var url_set = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
if (object_version == 2)
{
......
......@@ -345,8 +345,8 @@ public class Tpf.Persona : Folks.Persona,
private HashSet<EmailFieldDetails> _email_addresses =
new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
private Set<EmailFieldDetails> _email_addresses_ro;
/**
......@@ -375,8 +375,8 @@ public class Tpf.Persona : Folks.Persona,
private HashMultiMap<string, ImFieldDetails> _im_addresses =
new HashMultiMap<string, ImFieldDetails> (null, null,
(GLib.HashFunc) ImFieldDetails.hash,
(GLib.EqualFunc) ImFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/**
* A mapping of IM protocol to an (unordered) set of IM addresses.
......@@ -608,8 +608,8 @@ public class Tpf.Persona : Folks.Persona,
private HashSet<PhoneFieldDetails> _phone_numbers =
new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
private Set<PhoneFieldDetails> _phone_numbers_ro;
/**
......@@ -637,8 +637,8 @@ public class Tpf.Persona : Folks.Persona,
}
private HashSet<UrlFieldDetails> _urls = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
private Set<UrlFieldDetails> _urls_ro;
/**
......@@ -861,14 +861,14 @@ public class Tpf.Persona : Folks.Persona,
var new_birthday_str = "";
var new_full_name = "";
var new_email_addresses = new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var new_phone_numbers = new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var new_urls = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var contact_info = this.contact.get_contact_info ();
foreach (var info in contact_info)
......
......@@ -826,8 +826,8 @@ public class Trf.PersonaStore : Folks.PersonaStore
{
var ret = new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var services = ws_addrs.split (";");
foreach (var service_line in services)
......
......@@ -378,8 +378,8 @@ public class Trf.Persona : Folks.Persona,
private HashMultiMap<string, ImFieldDetails> _im_addresses =
new HashMultiMap<string, ImFieldDetails> (null, null,
(GLib.HashFunc) ImFieldDetails.hash,
(GLib.EqualFunc) ImFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/**
* {@inheritDoc}
......@@ -468,8 +468,8 @@ public class Trf.Persona : Folks.Persona,
private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses =
new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/**
* {@inheritDoc}
......@@ -558,28 +558,28 @@ public class Trf.Persona : Folks.Persona,
this._full_name = "";
this._structured_name = null;
this._phone_numbers = new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._phone_numbers_ro = this._phone_numbers.read_only_view;
this._email_addresses = new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._email_addresses_ro = this._email_addresses.read_only_view;
this._roles = new HashSet<RoleFieldDetails> (
(GLib.HashFunc) RoleFieldDetails.hash,
(GLib.EqualFunc) RoleFieldDetails.equal);
AbstractFieldDetails<Role>.hash_static,
AbstractFieldDetails<Role>.equal_static);
this._roles_ro = this._roles.read_only_view;
this._notes = new HashSet<NoteFieldDetails> (
(GLib.HashFunc) NoteFieldDetails.hash,
(GLib.EqualFunc) NoteFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._notes_ro = this._notes.read_only_view;
this._urls = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
this._urls_ro = this._urls.read_only_view;
this._postal_addresses = new HashSet<PostalAddressFieldDetails> (
(GLib.HashFunc) PostalAddressFieldDetails.hash,
(GLib.EqualFunc) PostalAddressFieldDetails.equal);
AbstractFieldDetails<PostalAddress>.hash_static,
AbstractFieldDetails<PostalAddress>.equal_static);
this._postal_addresses_ro = this._postal_addresses.read_only_view;
this._local_ids = new HashSet<string> ();
this._local_ids_ro = this._local_ids.read_only_view;
......@@ -804,8 +804,8 @@ public class Trf.Persona : Folks.Persona,
}
var postal_addresses = new HashSet<PostalAddressFieldDetails> (
(GLib.HashFunc) PostalAddressFieldDetails.hash,
(GLib.EqualFunc) PostalAddressFieldDetails.equal);
AbstractFieldDetails<PostalAddress>.hash_static,
AbstractFieldDetails<PostalAddress>.equal_static);
string[] addresses_a = postal_field.split ("\n");
......@@ -984,8 +984,8 @@ public class Trf.Persona : Folks.Persona,
}
HashSet<RoleFieldDetails> role_fds = new HashSet<RoleFieldDetails> (
(GLib.HashFunc) RoleFieldDetails.hash,
(GLib.EqualFunc) RoleFieldDetails.equal);
AbstractFieldDetails<Role>.hash_static,
AbstractFieldDetails<Role>.equal_static);
string[] roles_a = roles_field.split ("\n");
......@@ -1221,8 +1221,8 @@ public class Trf.Persona : Folks.Persona,
}
var phones = new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
string[] phones_a = phones_field.split ("\n");
foreach (var p in phones_a)
......@@ -1347,8 +1347,8 @@ public class Trf.Persona : Folks.Persona,
}
var email_addresses = new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
string[] emails_a = emails_field.split (",");
foreach (var e in emails_a)
......@@ -1372,8 +1372,8 @@ public class Trf.Persona : Folks.Persona,
private void _update_urls ()
{
var url_fds = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var _urls_field = this._cursor.get_string (Trf.Fields.URLS).dup ();
if (_urls_field == null)
......
......@@ -276,6 +276,32 @@ public abstract class Folks.AbstractFieldDetails<T> : Object
}
/**
* Same as {@link AbstractFieldDetails.equal}, but static,
* so we can use libgee 0.8 without an api break.
*
* See https://bugzilla.gnome.org/show_bug.cgi?id=673918
* This can and should be removed next time we break the api.
* Note: This uses Gee.EqualDataFunc signature, to avoid having to cast.
*
* @param left one {@link AbstractFieldDetails} to compare
* @param right another {@link AbstractFieldDetails} to compare
*
* @return whether the elemants are equal
*
* @since UNRELEASED
*/
public static bool equal_static (void* left,
void* right)
{
GLib.return_val_if_fail (left != null, false);
GLib.return_val_if_fail (right != null, false);
AbstractFieldDetails left_details = (AbstractFieldDetails) left;
AbstractFieldDetails right_details = (AbstractFieldDetails) right;
return left_details.equal (right_details);
}
/**
* An equality function which only considers parameters.
*
* This function compares:
......@@ -405,4 +431,26 @@ public abstract class Folks.AbstractFieldDetails<T> : Object
return hash_func (this.value);
}
/**
* Same as {@link AbstractFieldDetails.hash}, but static,
* so we can use libgee 0.8 without an api break.
*
* See https://bugzilla.gnome.org/show_bug.cgi?id=673918
* This can and should be removed next time we break the api.
* Note: This uses Gee.HashDataFunc signature, to avoit having to cast.
*
* @param value the value to hash
*
* @return the hash value
*
* @since UNRELEASED
*/
public static uint hash_static (void* value)
{
GLib.return_val_if_fail (value != null, 0);
AbstractFieldDetails details = (AbstractFieldDetails) value;
return details.hash ();
}
}
......@@ -146,10 +146,9 @@ public class Folks.BackendStore : Object {
this._debug.print_status.connect (this._debug_print_status);
this._modules = new HashMap<string,unowned Module> (str_hash, str_equal);
this._backend_hash = new HashMap<string,Backend> (str_hash, str_equal);
this._prepared_backends = new HashMap<string,Backend> (str_hash,
str_equal);
this._modules = new HashMap<string,unowned Module> ();
this._backend_hash = new HashMap<string,Backend> ();
this._prepared_backends = new HashMap<string,Backend> ();
this._prepared_backends_ro = this._prepared_backends.read_only_view;
}
......@@ -596,7 +595,7 @@ public class Folks.BackendStore : Object {
return null;
}
var modules_final = new HashMap<string, File> (str_hash, str_equal);
var modules_final = new HashMap<string, File> ();
foreach (var info in infos)
{
......
......@@ -236,7 +236,7 @@ public class Folks.Debug : Object
lock (retval._domains)
{
retval._all = false;
retval._domains = new HashSet<string> (str_hash, str_equal);
retval._domains = new HashSet<string> ();
if (debug_flags != null && debug_flags != "")
{
......
......@@ -1770,13 +1770,13 @@ public class Folks.IndividualAggregator : Object
/* `protocols_addrs_set` will be passed to the new Kf.Persona */
var protocols_addrs_set = new HashMultiMap<string, ImFieldDetails> (
null, null,
(GLib.HashFunc) ImFieldDetails.hash,
(GLib.EqualFunc) ImFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
var web_service_addrs_set =
new HashMultiMap<string, WebServiceFieldDetails> (
null, null,
(GLib.HashFunc) WebServiceFieldDetails.hash,
(GLib.EqualFunc) WebServiceFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
/* List of local_ids */
var local_ids = new Gee.HashSet<string> ();
......
......@@ -102,7 +102,7 @@ public class Folks.Individual : Object,
{
/* Stores the Personas contained in this Individual. */
private HashSet<Persona> _persona_set =
new HashSet<Persona> (direct_hash, direct_equal);
new HashSet<Persona> ();
/* Read-only view of the above set */
private Set<Persona> _persona_set_ro;
/* Mapping from PersonaStore -> number of Personas from that store contained
......@@ -470,8 +470,8 @@ public class Folks.Individual : Object,
}
private HashSet<UrlFieldDetails> _urls = new HashSet<UrlFieldDetails> (
(GLib.HashFunc) UrlFieldDetails.hash,
(GLib.EqualFunc) UrlFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
private Set<UrlFieldDetails> _urls_ro;
/**
......@@ -486,8 +486,8 @@ public class Folks.Individual : Object,
private HashSet<PhoneFieldDetails> _phone_numbers =
new HashSet<PhoneFieldDetails> (
(GLib.HashFunc) PhoneFieldDetails.hash,
(GLib.EqualFunc) PhoneFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);
private Set<PhoneFieldDetails> _phone_numbers_ro;
/**
......@@ -502,8 +502,8 @@ public class Folks.Individual : Object,
private HashSet<EmailFieldDetails> _email_addresses =
new HashSet<EmailFieldDetails> (
(GLib.HashFunc) EmailFieldDetails.hash,
(GLib.EqualFunc) EmailFieldDetails.equal);
AbstractFieldDetails<string>.hash_static,
AbstractFieldDetails<string>.equal_static);