diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-18 11:00:48 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-18 11:00:48 +0100 |
commit | b1040dc11fa15818eda724c35a334f460cf98005 (patch) | |
tree | 5d900083f2346bf40b2725ae701b2f329053306c | |
parent | 51f0bfb88a3554ca2dde777d78a59880d1ee37a8 (diff) |
patch 8.2.4976: Coverity complains about not restoring a saved valuev8.2.4976
Problem: Coverity complains about not restoring a saved value.
Solution: Restore value before handling error.
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/version.c b/src/version.c index 8d901e4cc4..4c63ea0771 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4976, +/**/ 4975, /**/ 4974, diff --git a/src/vim9execute.c b/src/vim9execute.c index 5050df6c11..a64ae5cbbd 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -4653,16 +4653,17 @@ exec_instructions(ectx_T *ectx) { checktype_T *ct = &iptr->isn_arg.type; int save_wt_variable = ectx->ec_where.wt_variable; + int r; tv = STACK_TV_BOT((int)ct->ct_off); SOURCING_LNUM = iptr->isn_lnum; if (!ectx->ec_where.wt_variable) ectx->ec_where.wt_index = ct->ct_arg_idx; ectx->ec_where.wt_variable = ct->ct_is_var; - if (check_typval_type(ct->ct_type, tv, ectx->ec_where) - == FAIL) - goto on_error; + r = check_typval_type(ct->ct_type, tv, ectx->ec_where); ectx->ec_where.wt_variable = save_wt_variable; + if (r == FAIL) + goto on_error; if (!ectx->ec_where.wt_variable) ectx->ec_where.wt_index = 0; |