Mercurial > vim
changeset 17956:1f6d5f9ddeb0 v8.1.1974
patch 8.1.1974: Coverity warns for using pointer as array
Commit: https://github.com/vim/vim/commit/1f3165bc34c6c608584a73f13faec27dd7c7e2fa
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Sep 4 13:21:26 2019 +0200
patch 8.1.1974: Coverity warns for using pointer as array
Problem: Coverity warns for using pointer as array.
Solution: Call var2fpos() directly instead of using f_line().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 04 Sep 2019 13:30:03 +0200 |
parents | 22e0c3abe0cf |
children | ac4fc61b10d3 |
files | src/evalfunc.c src/version.c |
diffstat | 2 files changed, 9 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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; }