diff options
author | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-11-18 22:20:39 +0100 |
---|---|---|
committer | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-11-18 22:20:39 +0100 |
commit | 7aa7ce253d462dc6b98dcf781d95be56c792f9d2 (patch) | |
tree | a5b97bf1fa832e18324f2890317c5e0decbf0ed1 | |
parent | ee134fc69866d059fa551d83fed5ae080c0d6f6b (diff) | |
download | rneovim-7aa7ce253d462dc6b98dcf781d95be56c792f9d2.tar.gz rneovim-7aa7ce253d462dc6b98dcf781d95be56c792f9d2.tar.bz2 rneovim-7aa7ce253d462dc6b98dcf781d95be56c792f9d2.zip |
Fix warnings: eval.c: f_rpcrequest(): Garbage value: MI.
Problem : Assigned value is garbage or undefined @ 12578.
Diagnostic : Multithreading issue.
Rationale : Error can only occur if global `provider_call_nesting` is
changed while function is executing.
Resolution : Use local copy of global.
-rw-r--r-- | src/nvim/eval.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 393fab1404..1a80198515 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -12523,6 +12523,7 @@ static void f_rpcrequest(typval_T *argvars, typval_T *rettv) { rettv->v_type = VAR_NUMBER; rettv->vval.v_number = 0; + const int l_provider_call_nesting = provider_call_nesting; if (check_restricted() || check_secure()) { return; @@ -12550,7 +12551,7 @@ static void f_rpcrequest(typval_T *argvars, typval_T *rettv) int save_autocmd_fname_full, save_autocmd_bufnr; void *save_funccalp; - if (provider_call_nesting) { + if (l_provider_call_nesting) { // If this is called from a provider function, restore the scope // information of the caller. save_current_SID = current_SID; @@ -12579,7 +12580,7 @@ static void f_rpcrequest(typval_T *argvars, typval_T *rettv) args, &err); - if (provider_call_nesting) { + if (l_provider_call_nesting) { current_SID = save_current_SID; sourcing_name = save_sourcing_name; sourcing_lnum = save_sourcing_lnum; |