aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/edit.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-11-05 22:34:27 +0100
committerEliseo Martínez <eliseomarmol@gmail.com>2014-11-06 09:51:59 +0100
commit74817b546e6fd4c6ec6e201c1b461e6cfbf5a3be (patch)
treed1225809c3a26b064380eebdb7348794db5854a0 /src/nvim/edit.c
parentd0a0efaf32b3f42ee4ebd37ff065dea4385b998b (diff)
downloadrneovim-74817b546e6fd4c6ec6e201c1b461e6cfbf5a3be.tar.gz
rneovim-74817b546e6fd4c6ec6e201c1b461e6cfbf5a3be.tar.bz2
rneovim-74817b546e6fd4c6ec6e201c1b461e6cfbf5a3be.zip
Fix warnings: edit.c: ins_bs(): Garbage result: MI.
Problem : Result of operation is garbage or undefined @ 7460. Diagnostic : Multithreading issue. Rationale : Problem occurs if any of globals `enc_utf8`, `p_deco is modified while function is executing. Resolution : Use local copy of globals.
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r--src/nvim/edit.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index c2fc2acfd1..384ca9abd8 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -7455,7 +7455,9 @@ static int ins_bs(int c, int mode, int *inserted_space_p)
if (State & REPLACE_FLAG)
replace_do_bs(-1);
else {
- if (enc_utf8 && p_deco)
+ const bool l_enc_utf8 = enc_utf8;
+ const int l_p_deco = p_deco;
+ if (l_enc_utf8 && l_p_deco)
(void)utfc_ptr2char(get_cursor_pos_ptr(), cpc);
(void)del_char(FALSE);
/*
@@ -7463,7 +7465,7 @@ static int ins_bs(int c, int mode, int *inserted_space_p)
* move the cursor back. Don't back up before the base
* character.
*/
- if (enc_utf8 && p_deco && cpc[0] != NUL)
+ if (l_enc_utf8 && l_p_deco && cpc[0] != NUL)
inc_cursor();
if (revins_chars) {
revins_chars--;