Mercurial > vim
changeset 22188:ec0a5ae32d5e v8.2.1643
patch 8.2.1643: Vim9: :defcompile compiles dead functions
Commit: https://github.com/vim/vim/commit/96f8f499ce51ea791d9b044c266f84380fa54848
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Sep 9 17:08:51 2020 +0200
patch 8.2.1643: Vim9: :defcompile compiles dead functions
Problem: Vim9: :defcompile compiles dead functions.
Solution: Skip over dead functions.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 09 Sep 2020 17:15:04 +0200 |
parents | cc2879441e5d |
children | c0aafebff6d9 |
files | src/userfunc.c src/version.c |
diffstat | 2 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/userfunc.c +++ b/src/userfunc.c @@ -3583,7 +3583,8 @@ ex_function(exarg_T *eap) } /* - * :defcompile - compile all :def functions in the current script. + * :defcompile - compile all :def functions in the current script that need to + * be compiled. Except dead functions. */ void ex_defcompile(exarg_T *eap UNUSED) @@ -3600,7 +3601,8 @@ ex_defcompile(exarg_T *eap UNUSED) --todo; ufunc = HI2UF(hi); if (ufunc->uf_script_ctx.sc_sid == current_sctx.sc_sid - && ufunc->uf_def_status == UF_TO_BE_COMPILED) + && ufunc->uf_def_status == UF_TO_BE_COMPILED + && (ufunc->uf_flags & FC_DEAD) == 0) { compile_def_function(ufunc, FALSE, NULL);