comparison src/eval.c @ 19201:e7b4fff348dd v8.2.0159

patch 8.2.0159: non-materialized range() list causes problems Commit: https://github.com/vim/vim/commit/50985eb1f0bd3c73ce727f9bbd66c839c92ef0da Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 27 22:09:39 2020 +0100 patch 8.2.0159: non-materialized range() list causes problems Problem: Non-materialized range() list causes problems. (Fujiwara Takuya) Solution: Materialize the list where needed.
author Bram Moolenaar <Bram@vim.org>
date Mon, 27 Jan 2020 22:15:07 +0100
parents 133ef7ba4e4e
children 2bb0e80fcd32
comparison
equal deleted inserted replaced
19200:654ef8f794a6 19201:e7b4fff348dd
4203 list_stack_T *tempitem; 4203 list_stack_T *tempitem;
4204 4204
4205 cur_l = l; 4205 cur_l = l;
4206 for (;;) 4206 for (;;)
4207 { 4207 {
4208 if (!abort) 4208 if (!abort && cur_l->lv_first != &range_list_item)
4209 // Mark each item in the list. If the item contains a hashtab 4209 // Mark each item in the list. If the item contains a hashtab
4210 // it is added to ht_stack, if it contains a list it is added to 4210 // it is added to ht_stack, if it contains a list it is added to
4211 // list_stack. 4211 // list_stack.
4212 for (li = cur_l->lv_first; !abort && li != NULL; li = li->li_next) 4212 for (li = cur_l->lv_first; !abort && li != NULL; li = li->li_next)
4213 abort = abort || set_ref_in_item(&li->li_tv, copyID, 4213 abort = abort || set_ref_in_item(&li->li_tv, copyID,