mirror of
https://github.com/neovim/neovim.git
synced 2025-09-12 14:28:18 +00:00
eval_call_provider(): free unused return value #12819
Caller can pass discard=true to free the unwanted return value.
This commit is contained in:

committed by
GitHub

parent
4bcf54478a
commit
a166c2aadb
@@ -10383,10 +10383,13 @@ void script_host_eval(char *name, typval_T *argvars, typval_T *rettv)
|
||||
|
||||
list_T *args = tv_list_alloc(1);
|
||||
tv_list_append_string(args, (const char *)argvars[0].vval.v_string, -1);
|
||||
*rettv = eval_call_provider(name, "eval", args);
|
||||
*rettv = eval_call_provider(name, "eval", args, false);
|
||||
}
|
||||
|
||||
typval_T eval_call_provider(char *provider, char *method, list_T *arguments)
|
||||
/// @param discard Clears the value returned by the provider and returns
|
||||
/// an empty typval_T.
|
||||
typval_T eval_call_provider(char *provider, char *method, list_T *arguments,
|
||||
bool discard)
|
||||
{
|
||||
if (!eval_has_provider(provider)) {
|
||||
emsgf("E319: No \"%s\" provider found. Run \":checkhealth provider\"",
|
||||
@@ -10445,6 +10448,10 @@ typval_T eval_call_provider(char *provider, char *method, list_T *arguments)
|
||||
provider_call_nesting--;
|
||||
assert(provider_call_nesting >= 0);
|
||||
|
||||
if (discard) {
|
||||
tv_clear(&rettv);
|
||||
}
|
||||
|
||||
return rettv;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user