diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-08-13 13:48:11 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-08-14 04:29:44 +0800 |
commit | f52c236c5b432629f0e074c3511e7e9d481197b1 (patch) | |
tree | 7a489a7a2a50db96e4aef4eeb24fd1cec2e78d5b /src/nvim/ex_eval.c | |
parent | c1cbe3fb3d2ec1dbcfdc14ee2d9a5e8049d494ae (diff) | |
download | rneovim-f52c236c5b432629f0e074c3511e7e9d481197b1.tar.gz rneovim-f52c236c5b432629f0e074c3511e7e9d481197b1.tar.bz2 rneovim-f52c236c5b432629f0e074c3511e7e9d481197b1.zip |
vim-patch:8.2.0056: execution stack is incomplete and inefficient
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
https://github.com/vim/vim/commit/1a47ae32cdc19b0fd5a82e19fe5fddf45db1a506
Omit test_debugger.vim: superseded by later patches.
Omit check_map_keycodes(): N/A.
Omit kword_test.c: N/A (converted to a unit test).
Diffstat (limited to 'src/nvim/ex_eval.c')
-rw-r--r-- | src/nvim/ex_eval.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nvim/ex_eval.c b/src/nvim/ex_eval.c index 9e029aa68a..0d10be2a97 100644 --- a/src/nvim/ex_eval.c +++ b/src/nvim/ex_eval.c @@ -478,8 +478,11 @@ static int throw_exception(void *value, except_type_T type, char *cmdname) } excp->type = type; - excp->throw_name = xstrdup(sourcing_name == NULL ? "" : sourcing_name); - excp->throw_lnum = sourcing_lnum; + excp->throw_name = estack_sfile(); + if (excp->throw_name == NULL) { + excp->throw_name = xstrdup(""); + } + excp->throw_lnum = SOURCING_LNUM; if (p_verbose >= 13 || debug_break_level > 0) { int save_msg_silent = msg_silent; |