Mercurial > vim
diff src/eval.c @ 18225:6c3a8312486d v8.1.2107
patch 8.1.2107: various memory leaks reported by asan
Commit: https://github.com/vim/vim/commit/8617348e2110c2c8387ea448a6258f1effa8d249
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Oct 1 17:02:16 2019 +0200
patch 8.1.2107: various memory leaks reported by asan
Problem: Various memory leaks reported by asan.
Solution: Free the memory. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/5003)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 01 Oct 2019 17:15:04 +0200 |
parents | a6d218f99ff7 |
children | c8a53c0daeed |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -2914,9 +2914,17 @@ eval_lambda( semsg(_(e_missingparen), "lambda"); } clear_tv(rettv); - return FAIL; + ret = FAIL; } - return call_func_rettv(arg, rettv, evaluate, NULL, &base); + else + ret = call_func_rettv(arg, rettv, evaluate, NULL, &base); + + // Clear the funcref afterwards, so that deleting it while + // evaluating the arguments is possible (see test55). + if (evaluate) + clear_tv(&base); + + return ret; } /*