diff src/proto/vim9execute.pro @ 30122:458162398682 v9.0.0397

patch 9.0.0397: :defer not tested with exceptions and ":qa!" Commit: https://github.com/vim/vim/commit/58779858fb5a82a3233af5d4237a3cece88c10d4 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Sep 6 18:31:14 2022 +0100 patch 9.0.0397: :defer not tested with exceptions and ":qa!" Problem: :defer not tested with exceptions and ":qa!". Solution: Test :defer works when exceptions are thrown and when ":qa!" is used. Invoke the deferred calls on exit.
author Bram Moolenaar <Bram@vim.org>
date Tue, 06 Sep 2022 19:45:04 +0200
parents a542dfb1c1a2
children 01408b56f093
line wrap: on
line diff
--- a/src/proto/vim9execute.pro
+++ b/src/proto/vim9execute.pro
@@ -13,7 +13,9 @@ typval_T *lookup_debug_var(char_u *name)
 int may_break_in_function(ufunc_T *ufunc);
 int exe_typval_instr(typval_T *tv, typval_T *rettv);
 char_u *exe_substitute_instr(void);
-int call_def_function(ufunc_T *ufunc, int argc_arg, typval_T *argv, partial_T *partial, typval_T *rettv);
+int call_def_function(ufunc_T *ufunc, int argc_arg, typval_T *argv, partial_T *partial, funccall_T *funccal, typval_T *rettv);
+void unwind_def_callstack(ectx_T *ectx);
+void may_invoke_defer_funcs(ectx_T *ectx);
 void set_context_in_disassemble_cmd(expand_T *xp, char_u *arg);
 char_u *get_disassemble_argument(expand_T *xp, int idx);
 void ex_disassemble(exarg_T *eap);