Mercurial > vim
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, |