comparison src/evalvars.c @ 25358:f03271631eb5 v8.2.3216

patch 8.2.3216: Vim9: crash when using variable in a loop at script level Commit: https://github.com/vim/vim/commit/2eb6fc3b52148f961e804ec2be361d531ff770d8 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 25 14:13:53 2021 +0200 patch 8.2.3216: Vim9: crash when using variable in a loop at script level Problem: Vim9: crash when using variable in a loop at script level. Solution: Do not clear the variable if a function was defined. Do not create a new entry in sn_var_vals every time. (closes #8628)
author Bram Moolenaar <Bram@vim.org>
date Sun, 25 Jul 2021 14:15:04 +0200
parents 75031a22be39
children 747ebbce2421
comparison
equal deleted inserted replaced
25357:2cf7cefa5bfa 25358:f03271631eb5
878 i = FAIL; 878 i = FAIL;
879 } 879 }
880 880
881 if (eap->skip) 881 if (eap->skip)
882 ++emsg_skip; 882 ++emsg_skip;
883 CLEAR_FIELD(evalarg); 883 fill_evalarg_from_eap(&evalarg, eap, eap->skip);
884 evalarg.eval_flags = eap->skip ? 0 : EVAL_EVALUATE;
885 if (getline_equal(eap->getline, eap->cookie, getsourceline))
886 {
887 evalarg.eval_getline = eap->getline;
888 evalarg.eval_cookie = eap->cookie;
889 }
890 expr = skipwhite_and_linebreak(expr, &evalarg); 884 expr = skipwhite_and_linebreak(expr, &evalarg);
891 cur_lnum = SOURCING_LNUM; 885 cur_lnum = SOURCING_LNUM;
892 i = eval0(expr, &rettv, eap, &evalarg); 886 i = eval0(expr, &rettv, eap, &evalarg);
893 if (eap->skip) 887 if (eap->skip)
894 --emsg_skip; 888 --emsg_skip;