1. 28 Nov, 2020 3 commits
    • Niels De Graef's avatar
      edsf: Persona: Add get_string_property() · 08713ade
      Niels De Graef authored
      By default, getting a property will duplicate the value. However, for
      string fields, we can do better, since `E.Contact` then provides a
      `get_const()` methods. Especially given the amount of string properties
      that are always loaded, this makes a big difference for large address
      books.
      08713ade
    • Niels De Graef's avatar
      Cut down on the amount of owned variables · 64ab5aa9
      Niels De Graef authored
      In a lot of places in Folks, we unnecessarily create a lot of owned
      variables. Although the performance impact of a string copy or a
      refcount increment is normally completely not a concern, we also do this
      in a lot of hot code paths (e.g., for each contact that is loaded). This
      in turn mostly impacts larger address books.
      64ab5aa9
    • Niels De Graef's avatar
      persona: Don't use string.replace · 2a0ac05e
      Niels De Graef authored
      Although it's supposedly part of `glib-2.0.vapi`, `string.replace` is
      _not_ a function implemented by GLib. Worse, what it does is to create
      and compile a `GRegex`, which then gets used to do the substitution.
      
      Since we call `Persona.build_uid()` for each persona, and then even 3
      times in a row, we create an amount of unnecessary temporary
      allocations that linearly increases with the amount of contacts.
      
      To mitigate this, use a `GString` (aka `GLib.StringBuilder`) and try to
      allocate the right amount from the start.
      2a0ac05e
  2. 24 Aug, 2020 1 commit
  3. 23 Aug, 2020 1 commit
  4. 18 Jun, 2020 1 commit
  5. 07 Jun, 2020 9 commits
  6. 27 Apr, 2020 1 commit
  7. 11 Mar, 2020 2 commits
  8. 10 Mar, 2020 1 commit
  9. 22 Feb, 2020 1 commit
  10. 04 Feb, 2020 4 commits
  11. 03 Feb, 2020 1 commit
  12. 08 Jan, 2020 1 commit
  13. 25 Dec, 2019 2 commits
  14. 24 Dec, 2019 1 commit
    • Niels De Graef's avatar
      meson: Check linker support for --version-script · 2742ff30
      Niels De Graef authored
      There's a possibility that the linker doesn't support the
      `--version-script` option, so use `cc.get_supported_link_arguments()`.
      
      Also make sure to add the symbol map file to the `link_depends` options
      of the specific libraries.
      2742ff30
  15. 17 Dec, 2019 1 commit
  16. 16 Dec, 2019 1 commit
    • Julian Sparber's avatar
      Tests: fix EDS linking tests · 4b965d4b
      Julian Sparber authored
      Linking depents now on the key-file to store linking information,
      therefore this adds the key-file backend to the eds tests.
      
      It also cleans up the set-up for the key-file backend as well.
      4b965d4b
  17. 08 Dec, 2019 2 commits
  18. 07 Dec, 2019 5 commits
  19. 24 Oct, 2019 2 commits
    • Julian Sparber's avatar
      Linking: store linking personas in key-file · fdf24555
      Julian Sparber authored
      This stores the linking personas in the key file store instead of the
      primary store. The primary store can be anything writable but we
      shouldn't add any personas the the users store, escpecally since we
      can't safely remove it again. Therefore this makes always use of the
      key-file store to save the linking persona and personas needed if a not
      writable persona is involved in linking and unlinking.
      fdf24555
    • Julian Sparber's avatar
      Key-file: implement LocalIdDetails · 5c039e61
      Julian Sparber authored
      The local ids can be used to link personas which don't have any common
      linking properties. This makes it possible to use the key file store to
      store linking personas.
      5c039e61