summaryrefslogtreecommitdiffstats
path: root/src/fold.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-04-23 16:48:20 +0200
committerBram Moolenaar <Bram@vim.org>2017-04-23 16:48:20 +0200
commitb11c826ddc459813f9f991cdb8e8736b686a6328 (patch)
tree8e614cd06b05ef48631cc83c028e57328f8ebb4d /src/fold.c
parent5b276aa80e112ae1993bd43e28f599f257827c54 (diff)
patch 8.0.0583: fold test hangs on MS-Windowsv8.0.0583
Problem: Fold test hangs on MS-Windows. Solution: Avoid overflow in compare.
Diffstat (limited to 'src/fold.c')
-rw-r--r--src/fold.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/fold.c b/src/fold.c
index 8f068dccf1..f8abe22d72 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -2928,7 +2928,7 @@ foldRemove(garray_T *gap, linenr_T top, linenr_T bot)
{
/* 2: or 3: need to delete nested folds */
foldRemove(&fp->fd_nested, top - fp->fd_top, bot - fp->fd_top);
- if (fp->fd_top + fp->fd_len > bot + 1)
+ if (fp->fd_top + fp->fd_len - 1 > bot)
{
/* 3: need to split it. */
foldSplit(gap, (int)(fp - (fold_T *)gap->ga_data), top, bot);
@@ -2970,10 +2970,12 @@ foldRemove(garray_T *gap, linenr_T top, linenr_T bot)
/* foldReverseOrder() {{{2 */
static void
-foldReverseOrder(garray_T *gap, linenr_T start, linenr_T end)
+foldReverseOrder(garray_T *gap, linenr_T start_arg, linenr_T end_arg)
{
fold_T *left, *right;
fold_T tmp;
+ linenr_T start = start_arg;
+ linenr_T end = end_arg;
for (; start < end; start++, end--)
{