diff options
Diffstat (limited to 'src/nvim/eval.c')
| -rw-r--r-- | src/nvim/eval.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/src/nvim/eval.c b/src/nvim/eval.c index e5bb7f1b38..08b3d1dbd7 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -4239,11 +4239,17 @@ static int eval7(          // use its contents.          s = deref_func_name((const char *)s, &len, &partial, !evaluate); +        // Need to make a copy, in case evaluating the arguments makes +        // the name invalid. +        s = xmemdupz(s, len); +          // Invoke the function.          ret = get_func_tv(s, len, rettv, arg,                            curwin->w_cursor.lnum, curwin->w_cursor.lnum,                            &len, evaluate, partial, NULL); +        xfree(s); +          // If evaluate is false rettv->v_type was not set in          // get_func_tv, but it's needed in handle_subscript() to parse          // what follows. So set it here. | 
