comparison src/userfunc.c @ 25409:e3f1086429d8 v8.2.3241

patch 8.2.3241: Vim9: memory leak when function reports an error Commit: https://github.com/vim/vim/commit/6e850a6900793e215c08b39d6490173488cb05ce Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jul 28 22:21:23 2021 +0200 patch 8.2.3241: Vim9: memory leak when function reports an error Problem: Vim9: memory leak when function reports an error. Solution: Clear the return value.
author Bram Moolenaar <Bram@vim.org>
date Wed, 28 Jul 2021 22:30:04 +0200
parents 5c7192180b89
children dcd45fe7fe2e
comparison
equal deleted inserted replaced
25408:58603ea67d8e 25409:e3f1086429d8
1689 &argvars[i]; 1689 &argvars[i];
1690 } 1690 }
1691 1691
1692 ret = call_func(name, len, rettv, argcount, argvars, funcexe); 1692 ret = call_func(name, len, rettv, argcount, argvars, funcexe);
1693 if (in_vim9script() && did_emsg > did_emsg_before) 1693 if (in_vim9script() && did_emsg > did_emsg_before)
1694 {
1694 // An error in a builtin function does not return FAIL, but we do 1695 // An error in a builtin function does not return FAIL, but we do
1695 // want to abort further processing if an error was given. 1696 // want to abort further processing if an error was given.
1696 ret = FAIL; 1697 ret = FAIL;
1698 clear_tv(rettv);
1699 }
1697 1700
1698 funcargs.ga_len -= i; 1701 funcargs.ga_len -= i;
1699 } 1702 }
1700 else if (!aborting()) 1703 else if (!aborting())
1701 { 1704 {