From 7aa7ce253d462dc6b98dcf781d95be56c792f9d2 Mon Sep 17 00:00:00 2001 From: Eliseo Martínez Date: Tue, 18 Nov 2014 22:20:39 +0100 Subject: 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. --- src/nvim/eval.c | 5 +++-- 1 file 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; -- cgit