summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-09-04 13:21:26 +0200
committerBram Moolenaar <Bram@vim.org>2019-09-04 13:21:26 +0200
commit1f3165bc34c6c608584a73f13faec27dd7c7e2fa (patch)
tree98b930417870b567d8d9d3ff4b2ebf3f11564356
parent61c18652c9374a60ad5ed07a5644217b921c1596 (diff)
downloadvim-git-1f3165bc34c6c608584a73f13faec27dd7c7e2fa.tar.gz
patch 8.1.1974: Coverity warns for using pointer as arrayv8.1.1974
Problem: Coverity warns for using pointer as array. Solution: Call var2fpos() directly instead of using f_line().
-rw-r--r--src/evalfunc.c18
-rw-r--r--src/version.c2
2 files changed, 9 insertions, 11 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 6b75addd0..bf4bb8eb9 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1152,20 +1152,16 @@ non_zero_arg(typval_T *argvars)
linenr_T
tv_get_lnum(typval_T *argvars)
{
- typval_T rettv;
linenr_T lnum;
- int save_type;
lnum = (linenr_T)tv_get_number_chk(&argvars[0], NULL);
- if (lnum == 0) /* no valid number, try using line() */
- {
- rettv.v_type = VAR_NUMBER;
- save_type = argvars[1].v_type;
- argvars[1].v_type = VAR_UNKNOWN;
- f_line(argvars, &rettv);
- lnum = (linenr_T)rettv.vval.v_number;
- clear_tv(&rettv);
- argvars[1].v_type = save_type;
+ if (lnum == 0) // no valid number, try using arg like line()
+ {
+ int fnum;
+ pos_T *fp = var2fpos(&argvars[0], TRUE, &fnum);
+
+ if (fp != NULL)
+ lnum = fp->lnum;
}
return lnum;
}
diff --git a/src/version.c b/src/version.c
index c9860acec..3f92271dd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1974,
+/**/
1973,
/**/
1972,