Mercurial > vim
comparison src/proto/vim9compile.pro @ 23285:112fa621b127 v8.2.2188
patch 8.2.2188: Vim9: crash when calling global function from :def function
Commit: https://github.com/vim/vim/commit/cd45ed03bfdd7fac53d562ad402df74bd26e7754
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Dec 22 17:35:54 2020 +0100
patch 8.2.2188: Vim9: crash when calling global function from :def function
Problem: Vim9: crash when calling global function from :def function.
Solution: Set the outer context. Define the partial for the context on the
original function. Use a refcount to keep track of which ufunc is
using a dfunc. (closes #7525)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 22 Dec 2020 17:45:03 +0100 |
parents | d3b26055bfa8 |
children | 517fca70e084 |
comparison
equal
deleted
inserted
replaced
23284:3d54c7fa353c | 23285:112fa621b127 |
---|---|
16 void vim9_declare_error(char_u *name); | 16 void vim9_declare_error(char_u *name); |
17 int check_vim9_unlet(char_u *name); | 17 int check_vim9_unlet(char_u *name); |
18 int compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx); | 18 int compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx); |
19 void set_function_type(ufunc_T *ufunc); | 19 void set_function_type(ufunc_T *ufunc); |
20 void delete_instr(isn_T *isn); | 20 void delete_instr(isn_T *isn); |
21 void clear_def_function(ufunc_T *ufunc); | |
22 void unlink_def_function(ufunc_T *ufunc); | 21 void unlink_def_function(ufunc_T *ufunc); |
22 void link_def_function(ufunc_T *ufunc); | |
23 void free_def_functions(void); | 23 void free_def_functions(void); |
24 /* vim: set ft=c : */ | 24 /* vim: set ft=c : */ |