Mercurial > vim
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 { |