git-commit-vandalism/xdiff
René Scharfe c099789bb0 diff: avoid repeated scanning while looking for funcname
For each hunk, xdl_find_func searches the preimage for a function name
until the beginning of the file. If the file does not contain any
function names, this search has complexity O(n^2) in the number of
hunks n.

Instead, inline xdl_find_func() and keep track of up to which line we
have scanned already and the contents of the last funcname line that
we have found.

Noticed and a different approach proposed by Clemens Buchacher.
This alternative solution was done by René Scharfe.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-30 11:43:07 -07:00
..
xdiff.h xdl_merge(): move file1 and file2 labels to xmparam structure 2010-03-20 20:36:10 -07:00
xdiffi.c refactor: use bitsizeof() instead of 8 * sizeof() 2009-07-22 21:57:41 -07:00
xdiffi.h Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xemit.c diff: avoid repeated scanning while looking for funcname 2010-09-30 11:43:07 -07:00
xemit.h Allow alternate "low-level" emit function from xdl_diff 2008-10-25 12:09:31 -07:00
xinclude.h War on whitespace 2007-06-07 00:04:01 -07:00
xmacros.h War on whitespace 2007-06-07 00:04:01 -07:00
xmerge.c xdiff/xmerge.c: use memset() instead of explicit for-loop 2010-05-01 11:11:11 -07:00
xpatience.c Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xprepare.c Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xprepare.h War on whitespace 2007-06-07 00:04:01 -07:00
xtypes.h War on whitespace 2007-06-07 00:04:01 -07:00
xutils.c xdiff: optimise for no whitespace difference when ignoring whitespace. 2010-07-05 23:27:41 -07:00
xutils.h War on whitespace 2007-06-07 00:04:01 -07:00