1. 23 Feb, 2019 1 commit
    • odb: rename git_odb_backend_malloc for consistency · 790aae77
      The `git_odb_backend_malloc` name is a system function that is provided
      for custom ODB backends and allows them to allocate memory for an ODB
      object in the read callback.  This is important so that libgit2 can
      later free the memory used by an ODB object that was read from the
      custom backend.
      
      However, the name _suggests_ that it actually allocates a
      `git_odb_backend`.  It does not; rename it to make it clear that it
      actually allocates backend _data_.
      Edward Thomson committed
  2. 22 Feb, 2019 9 commits
  3. 21 Feb, 2019 12 commits
  4. 20 Feb, 2019 4 commits
  5. 17 Feb, 2019 8 commits
  6. 16 Feb, 2019 1 commit
  7. 15 Feb, 2019 5 commits
    • idxmap: remove legacy low-level interface · df42f368
      Remove the low-level interface that was exposing implementation details of
      `git_idxmap` to callers. From now on, only the high-level functions shall be
      used to retrieve or modify values of a map. Adjust remaining existing callers.
      Patrick Steinhardt committed
    • oidmap: remove legacy low-level interface · bd66925a
      Remove the low-level interface that was exposing implementation details of
      `git_oidmap` to callers. From now on, only the high-level functions shall be
      used to retrieve or modify values of a map. Adjust remaining existing callers.
      Patrick Steinhardt committed
    • offmap: remove legacy low-level interface · 4713e7c8
      Remove the low-level interface that was exposing implementation details of
      `git_offmap` to callers. From now on, only the high-level functions shall be
      used to retrieve or modify values of a map. Adjust remaining existing callers.
      Patrick Steinhardt committed
    • strmap: remove legacy low-level interface · fdfabdc4
      Remove the low-level interface that was exposing implementation details of
      `git_strmap` to callers. From now on, only the high-level functions shall be
      used to retrieve or modify values of a map. Adjust remaining existing callers.
      Patrick Steinhardt committed
    • cache: use iteration interface for cache eviction · 6a9117f5
      To relieve us from memory pressure, we may regularly call `cache_evict_entries`
      to remove some entries from it. Unfortunately, our cache does not support a
      least-recently-used mode or something similar, which is why we evict entries
      completeley at random right now. Thing is, this is only possible due to the map
      interfaces exposing the entry indices, and we intend to completely remove those
      to decouple map users from map implementations. As soon as that is done, we are
      unable to do this random eviction anymore.
      
      Convert this to make use of an iterator for now. Obviously, there is no random
      eviction possible like that anymore, but we'll always start by evicting from the
      beginning of the map. Due to hashing, one may hope that the selected buckets
      will be evicted at least in some way unpredictably. But more likely than not,
      this will not be the case. But let's see what happens and if any users complain
      about degraded performance. If so, we might come up with a different scheme than
      random removal, e.g. by using an LRU cache.
      Patrick Steinhardt committed