* Bug 645684 — Implement Iterator on LinkedHashSet
* Bug 640092 — Folks should minimize use of GLib.List (including its public API)
* Bug 648161 — Add GObject Introspection Support
+* Bug 645186 — Make sure all connect() calls have appropriate disconnect() calls
API changes:
* LinkedHashSet.list_iterator() is now disallowed (causes an assertion failure)
this._backend_available_cb);
}
+ ~IndividualAggregator ()
+ {
+ this._backend_store.backend_available.disconnect (
+ this._backend_available_cb);
+ this._backend_store = null;
+ }
+
/**
* Prepare the IndividualAggregator for use.
*
return type_id + ":" + id;
}
+ private void _connect_to_individual (Individual individual)
+ {
+ individual.removed.connect (this._individual_removed_cb);
+ this.individuals.set (individual.id, individual);
+ }
+
+ private void _disconnect_from_individual (Individual individual)
+ {
+ this.individuals.unset (individual.id);
+ individual.removed.disconnect (this._individual_removed_cb);
+ }
+
private void _add_personas (Set<Persona> added,
ref HashSet<Individual> added_individuals,
ref HashMap<Individual, Individual> replaced_individuals,
foreach (var i in almost_added_individuals)
{
/* Add the new Individual to the aggregator */
- i.removed.connect (this._individual_removed_cb);
added_individuals.add (i);
- this.individuals.set (i.id, i);
+ this._connect_to_individual (i);
}
}
if (user == individual)
user = null;
- this.individuals.unset (individual.id);
+ this._disconnect_from_individual (individual);
individual.personas = null;
}
individuals, null, null, 0);
}
- this.individuals.unset (i.id);
+ this._disconnect_from_individual (i);
}
/**