Skip to content
  • René Scharfe's avatar
    Optimize color_parse_mem · 2c2dc7c8
    René Scharfe authored and Junio C Hamano's avatar Junio C Hamano committed
    Commit 5ef8d77a
    
     implemented color_parse_mem, a function for
    parsing colors from a non-NUL-terminated string, by simply
    allocating a new NUL-terminated string and calling
    color_parse. This had a small but measurable speed impact on
    a user format that used the advanced color parsing. E.g.,
    
      # uses quick parsing
      $ time ./git log --pretty=tformat:'%Credfoo%Creset' >/dev/null
      real    0m0.673s
      user    0m0.652s
      sys     0m0.016s
    
      # uses color_parse_mem
      $ time ./git log --pretty=tformat:'%C(red)foo%C(reset)' >/dev/null
      real    0m0.692s
      user    0m0.660s
      sys     0m0.032s
    
    This patch implements color_parse_mem as the primary
    function, with color_parse as a wrapper for strings. This
    gives comparable timings to the first case above.
    
    Original patch by René. Commit message and debugging by Jeff
    King.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    2c2dc7c8