Michael Haggerty <mhag...@alum.mit.edu> 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 <mhag...@alum.mit.edu>
> ---
>  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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to