# HG changeset patch # User Bram Moolenaar # Date 1652868904 -7200 # Node ID 8f599b6d9f54c6b4dfff9ba63c458ba350431010 # Parent d43069214fa629eb47e4dbab218142c2e9eb0b44 patch 8.2.4976: Coverity complains about not restoring a saved value Commit: https://github.com/vim/vim/commit/b1040dc11fa15818eda724c35a334f460cf98005 Author: Bram Moolenaar Date: Wed May 18 11:00:48 2022 +0100 patch 8.2.4976: Coverity complains about not restoring a saved value Problem: Coverity complains about not restoring a saved value. Solution: Restore value before handling error. diff --git a/src/version.c b/src/version.c --- 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 --- 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) + 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; - ectx->ec_where.wt_variable = save_wt_variable; if (!ectx->ec_where.wt_variable) ectx->ec_where.wt_index = 0;