summaryrefslogtreecommitdiffstats
path: root/src/evalfunc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r--src/evalfunc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 4376318d0d..169f972c24 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7922,7 +7922,7 @@ range_list_materialize(list_T *list)
{
varnumber_T start = list->lv_u.nonmat.lv_start;
varnumber_T end = list->lv_u.nonmat.lv_end;
- int stride = list->lv_u.nonmat.lv_stride;
+ int stride = list->lv_u.nonmat.lv_stride;
varnumber_T i;
list->lv_first = NULL;
@@ -7930,8 +7930,13 @@ range_list_materialize(list_T *list)
list->lv_len = 0;
list->lv_u.mat.lv_idx_item = NULL;
for (i = start; stride > 0 ? i <= end : i >= end; i += stride)
+ {
if (list_append_number(list, (varnumber_T)i) == FAIL)
break;
+ if (list->lv_lock & VAR_ITEMS_LOCKED)
+ list->lv_u.mat.lv_last->li_tv.v_lock = VAR_LOCKED;
+ }
+ list->lv_lock &= ~VAR_ITEMS_LOCKED;
}
/*