Mercurial > vim
changeset 6422:9fbb9c60ab41 v7.4.541
updated for version 7.4.541
Problem: Crash when doing a range assign.
Solution: Check for NULL poiter. (Yukihiro Nakadaira)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 07 Dec 2014 00:18:33 +0100 |
parents | 5d89d9b40499 |
children | 946876e24d5d |
files | src/eval.c src/testdir/test55.in src/testdir/test55.ok src/version.c |
diffstat | 4 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -2951,7 +2951,7 @@ set_var_lval(lp, endp, rettv, copy, op) /* * Check whether any of the list items is locked */ - for (ri = rettv->vval.v_list->lv_first; ri != NULL; ) + for (ri = rettv->vval.v_list->lv_first; ri != NULL && ll_li != NULL; ) { if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name)) return;
--- a/src/testdir/test55.in +++ b/src/testdir/test55.in @@ -401,6 +401,11 @@ let l = [0, 1, 2, 3] : $put =v:exception[:15] . v:exception[-1:-1] :endtry :$put =string(d) +:" +:" test for range assign +:let l = [0] +:let l[:] = [1, 2] +:$put =string(l) :endfun :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while