diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2026-08-24 09:27:46 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-24 09:27:46 +0800 |
| commit | 70958dae75efc797fe85b29df11fb2ea2ebf9401 (patch) | |
| tree | 9fe671ebd2ee69ce4a77945b348e11f99f52cab9 /runtime/lua/vim | |
| parent | 126398c090c9389e7709d25af1728884066d8f0c (diff) | |
| download | rneovim-70958dae75efc797fe85b29df11fb2ea2ebf9401.tar.gz rneovim-70958dae75efc797fe85b29df11fb2ea2ebf9401.tar.bz2 rneovim-70958dae75efc797fe85b29df11fb2ea2ebf9401.zip | |
vim-patch:9.2.0996: debugger: crash when evaluating a variable in a :def function frame (#41460)
Problem: In the debugger ">up" and ">frame" select an older function call
frame, but get_funccal_local_ht() and the related functions check
current_funccal while returning a dictionary of the frame that
get_funccal() selected. A :def function keeps its local variables
on the vim9 stack, its funccall_T has no l: and a: dictionaries and
is allocated cleared, so with such a frame selected the returned
hashtab has a NULL ht_array and evaluating any variable name at the
debug prompt crashes in hash_lookup().
Solution: Check the funccal that is actually used and return NULL when it has
no l: variables, so that the variable is reported as undefined
instead.
closes: vim/vim#21111
https://github.com/vim/vim/commit/5ad47b07af72950624904a9ec0bc9f2d4ebc77a6
Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'runtime/lua/vim')
0 files changed, 0 insertions, 0 deletions