1. 06 Sep, 2012 12 commits
  2. 05 Sep, 2012 11 commits
  3. 02 Sep, 2012 1 commit
  4. 28 Aug, 2012 9 commits
    • Philip Withnall's avatar
      Bug 682719 — eds test fails to compile · 2dcbc92f
      Philip Withnall authored
      Don’t use deprecated EDS API in the EDS tests. The replacement API doesn’t
      require a dependency version bump.
      
      Closes: https://bugzilla.gnome.org/show_bug.cgi?id=682719
      2dcbc92f
    • Philip Withnall's avatar
      core: Only emit notifications for multi-valued properties when necessary · 8ae18840
      Philip Withnall authored
      Previously, notifications were emitted whenever a related Persona’s property
      changed, even if it had no effect on the Individual’s property. This was
      causing infinite loops of notifications-then-getters-being-called in some
      of the EDS tests. Bad.
      
      This is fixed by only emitting notifications on Individuals’ multi-valued
      properties if the properties have actually changed. Of course, this
      requires lots of copying and pasting the same code because Vala doesn’t
      have a preprocessor and delegates aren’t up to the job. Sigh.
      
      See: https://bugzilla.gnome.org/show_bug.cgi?id=682809
      8ae18840
    • Philip Withnall's avatar
      core: Tidy up multi-valued property update functions · af4bb7b8
      Philip Withnall authored
      Create a new _update_multi_valued_property() helper function and
      corresponding delegates, to mirror the existing
      _update_single_valued_property() helper.
      
      This new function is now used for most multi-valued property updaters in
      Individual. It’s not used for groups, because they have weird signalling.
      af4bb7b8
    • Philip Withnall's avatar
      telepathy: Support lazy initialisation of properties · eb75447e
      Philip Withnall authored
      See commit 303547fec56e416f57f73643e2afb7bb4e4a8a7f. This adds support for
      lazy initialisation of multi-valued properties to the Telepathy backend.
      eb75447e
    • Philip Withnall's avatar
      eds: Support lazy initialisation of properties · 57f84d50
      Philip Withnall authored
      See commit 303547fec56e416f57f73643e2afb7bb4e4a8a7f. This adds support for
      lazy initialisation of multi-valued properties to the EDS backend.
      57f84d50
    • Philip Withnall's avatar
      core: Support lazy initialisation of properties · 4a59af5c
      Philip Withnall authored
      Creating several HashSets and HashMultiMaps for every Individual turns
      out to be quite wasteful, especially when most of them will typically be
      empty (as address books are generally quite sparse on properties) and never
      accessed (since most clients don’t need local IDs or web service addresses).
      
      This commit delays initialisation of various multi-valued Individual
      properties to the first time they’re accessed, giving them a null value
      before that time. It preserves the existing API for Individual, i.e. the
      properties themselves remain non-nullable, and only the object members
      backing them become nullable.
      
      This does introduce a slight behaviour change, in that an Individual will
      now emit change notifications for a non-initialised multi-valued property if
      *any* of the Personas in the Individual emit a notification for that
      property. This is because the Individual can’t compare the current value of
      its property to the new one resulting from the change in the Persona’s
      property value to determine if a change has really occurred. Therefore the
      Individual makes a safe over-estimate and emits notifications which might
      be false positives.
      
      This shouldn’t be a problem: if a client is interested in the property,
      they will have already queried it and caused it to be initialised.
      Initialised properties have the same notification behaviour as before.
      If a client isn’t interested in the property, it won’t be connected to the
      property notifications anyway.
      
      This change roughly quarters the number of GObjects being created when
      opening folks-inspect with the Telepathy, key-file and EDS backends enabled
      and ~115 personas in the system.
      4a59af5c
    • Philip Withnall's avatar
      8632764f
    • Philip Withnall's avatar
      eds: Batch up emissions of personas-changed while starting up · 3e48d450
      Philip Withnall authored
      There’s no point in emitting personas-changed multiple times before the EDS
      persona store has reached quiescence — it just means the individual
      aggregator has to re-link more personas with each emission.
      
      This patch batches up emissions of personas-changed from the EDS persona
      store until is-quiescent is reached, then notifies about all personas in
      a single emission.
      3e48d450
    • Philip Withnall's avatar
      eds: Remove unnecessary locking · 5df5c3f4
      Philip Withnall authored
      It didn’t achieve anything.
      5df5c3f4
  5. 27 Aug, 2012 2 commits
  6. 25 Aug, 2012 5 commits