Re: [RFC PATCH 1/3] diff: avoid redundantly clearing a flag
From: Stefan Beller <hidden>
Date: 2017-08-14 17:13:54
On Fri, Aug 11, 2017 at 3:49 PM, Jonathan Tan [off-list ref] wrote:
No code in diff.c sets DIFF_SYMBOL_MOVED_LINE except in mark_color_as_moved(), so it is redundant to clear it for the current line. Therefore, clear it only for previous lines.
Oh that part. I remember debating with myself if I rather want to have the upper bound adjusted by one less (block_length instead of 'block_length + 1'), and then add a constant to 'buf[n - i];' The patch as implemented is fine, too.
quoted hunk ↗ jump to hunk
This makes a refactoring in a subsequent patch easier. Signed-off-by: Jonathan Tan <redacted> --- diff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/diff.c b/diff.c index f84346b47..4965ffbc4 100644 --- a/diff.c +++ b/diff.c@@ -895,7 +895,7 @@ static void mark_color_as_moved(struct diff_options *o, if (!match) { if (block_length < COLOR_MOVED_MIN_BLOCK_LENGTH && o->color_moved != COLOR_MOVED_PLAIN) { - for (i = 0; i < block_length + 1; i++) { + for (i = 1; i < block_length + 1; i++) { l = &o->emitted_symbols->buf[n - i]; l->flags &= ~DIFF_SYMBOL_MOVED_LINE; } --2.14.0.434.g98096fd7a8-goog