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)
diff --git a/src/vim9.h b/src/vim9.h
index 5ced180..9048d23 100644
--- a/src/vim9.h
+++ b/src/vim9.h
@@ -341,8 +341,10 @@
*/
struct dfunc_S {
ufunc_T *df_ufunc; // struct containing most stuff
+ int df_refcount; // how many ufunc_T point to this dfunc_T
int df_idx; // index in def_functions
int df_deleted; // if TRUE function was deleted
+ char_u *df_name; // name used for error messages
garray_T df_def_args_isn; // default argument instructions
isn_T *df_instr; // function body to be executed