1. 05 Feb, 2014 4 commits
    • Split p_strlen into its own header · 24f3024f
      We need this from util.h and posix.h, but the latter includes common.h
      which includes util.h, which means p_strlen is not defined by the time
      we get to git__strndup().
      
      Split the definition on p_strlen() off into its own header so we can use
      it in util.h.
      Carlos Martín Nieto committed
    • utils: don't reimplement strnlen · 1e6f0ac4
      The standard library provides a very nice strnlen function, which knows
      to use SSE, let's not reimplement it ourselves.
      Carlos Martín Nieto committed
    • commit: faster parsing · a6563619
      The current code issues a lot of strncmp() calls in order to check for
      the end of the header, simply in order to copy it and start going
      through it again. These are a lot of calls for something we can check as
      we go along. Knowing the amount of parents beforehand to reduce
      allocations in extreme cases does not make up for them.
      
      Instead start parsing immediately and check for the double-newline after
      each header field, leaving the raw_header allocation for the end, which
      lets us go through the header once and reduces the amount of strncmp()
      calls significantly.
      
      In unscientific testing, this has reduced a shortlog-like usage (walking
      though the whole history of a branch and extracting data from the
      commits) of git.git from ~830ms to ~700ms and makes the time we spend in
      strncmp() negligible.
      Carlos Martín Nieto committed
  2. 04 Feb, 2014 6 commits
  3. 03 Feb, 2014 1 commit
  4. 02 Feb, 2014 3 commits
  5. 01 Feb, 2014 2 commits
  6. 31 Jan, 2014 4 commits
  7. 30 Jan, 2014 20 commits