Michael Haggerty <mhagger@xxxxxxxxxxxx> writes: > This makes it easier to detect whether shifting is possible, and will > also make the next change easier. I can see the code keeping track of earliest_end but the above does not make it clear what the new "continue" is about. ... easier to detect whether shifting is possible (in which case we can skip the shifting), and will also make ... perhaps. > Signed-off-by: Michael Haggerty <mhagger@xxxxxxxxxxxx> > --- > xdiff/xdiffi.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/xdiff/xdiffi.c b/xdiff/xdiffi.c > index 66129db..34f021a 100644 > --- a/xdiff/xdiffi.c > +++ b/xdiff/xdiffi.c > @@ -414,7 +414,8 @@ static int recs_match(xrecord_t **recs, long ixs, long ix, long flags) > } > > int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) { > - long start, end, io, end_matching_other, groupsize, nrec = xdf->nrec; > + long start, end, earliest_end, end_matching_other; > + long io, groupsize, nrec = xdf->nrec; > char *rchg = xdf->rchg, *rchgo = xdfo->rchg; > unsigned int blank_lines; > xrecord_t **recs = xdf->recs; > @@ -516,6 +517,8 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) { > end_matching_other = -1; > } > > + earliest_end = end; > + > /* > * Now shift the group forward as long as the first line > * of the current change group is equal to the line after > @@ -547,6 +550,9 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) { > } > } while (groupsize != end - start); > > + if (end == earliest_end) > + continue; /* no shifting is possible */ > + > if ((flags & XDF_COMPACTION_HEURISTIC) && blank_lines) { > /* > * Compaction heuristic: if a group can be moved back and -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html