aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Ennen <mike.ennen@gmail.com>2016-12-19 17:06:20 -0700
committerMichael Ennen <mike.ennen@gmail.com>2017-02-14 17:38:18 -0700
commit42727ecf086b444ed6dd91798a0106a835536792 (patch)
treebeb6542f238652d36bf68671a6419937f6eb3242
parente71e9020eb31cfd606469e5d5ab97500232c65d6 (diff)
downloadrneovim-42727ecf086b444ed6dd91798a0106a835536792.tar.gz
rneovim-42727ecf086b444ed6dd91798a0106a835536792.tar.bz2
rneovim-42727ecf086b444ed6dd91798a0106a835536792.zip
vim-patch:7.4.2141
Problem: Coverity reports bogus NULL check. Solution: When checking for a variable in the funccal scope don't pass the varname. https://github.com/vim/vim/commit/ba96e9af388804364425185b47eed14988302865
-rw-r--r--src/nvim/eval.c30
-rw-r--r--src/nvim/version.c2
2 files changed, 15 insertions, 17 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 70c47b09a6..ba81afcdb2 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -3035,7 +3035,7 @@ int do_unlet(char_u *name, int forceit)
}
hi = hash_find(ht, varname);
if (HASHITEM_EMPTY(hi)) {
- hi = find_hi_in_scoped_ht(name, &varname, &ht);
+ hi = find_hi_in_scoped_ht(name, &ht);
}
if (hi != NULL && !HASHITEM_EMPTY(hi)) {
di = HI2DI(hi);
@@ -20009,8 +20009,7 @@ static dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload)
}
// Search in parent scope for lambda
- return find_var_in_scoped_ht(name, varname ? &varname : NULL,
- no_autoload || htp != NULL);
+ return find_var_in_scoped_ht(name, no_autoload || htp != NULL);
}
/// Find variable "varname" in hashtab "ht" with name "htname".
@@ -20381,7 +20380,7 @@ set_var (
// Search in parent scope which is possible to reference from lambda
if (v == NULL) {
- v = find_var_in_scoped_ht(name, varname ? &varname : NULL, true);
+ v = find_var_in_scoped_ht(name, true);
}
if ((tv->v_type == VAR_FUNC || tv->v_type == VAR_PARTIAL)
@@ -23079,12 +23078,12 @@ static var_flavour_T var_flavour(char_u *varname)
}
/// Search hashitem in parent scope.
-hashitem_T *find_hi_in_scoped_ht(char_u *name, char_u **varname,
- hashtab_T **pht)
+hashitem_T *find_hi_in_scoped_ht(char_u *name, hashtab_T **pht)
{
funccall_T *old_current_funccal = current_funccal;
hashtab_T *ht;
hashitem_T *hi = NULL;
+ char_u *varname;
if (current_funccal == NULL || current_funccal->func->uf_scoped == NULL) {
return NULL;
@@ -23093,9 +23092,9 @@ hashitem_T *find_hi_in_scoped_ht(char_u *name, char_u **varname,
// Search in parent scope which is possible to reference from lambda
current_funccal = current_funccal->func->uf_scoped;
while (current_funccal != NULL) {
- ht = find_var_ht(name, varname);
- if (ht != NULL && **varname != NUL) {
- hi = hash_find(ht, *varname);
+ ht = find_var_ht(name, &varname);
+ if (ht != NULL && *varname != NUL) {
+ hi = hash_find(ht, varname);
if (!HASHITEM_EMPTY(hi)) {
*pht = ht;
break;
@@ -23112,12 +23111,12 @@ hashitem_T *find_hi_in_scoped_ht(char_u *name, char_u **varname,
}
/// Search variable in parent scope.
-dictitem_T *find_var_in_scoped_ht(char_u *name, char_u **varname,
- int no_autoload)
+dictitem_T *find_var_in_scoped_ht(char_u *name, int no_autoload)
{
dictitem_T *v = NULL;
funccall_T *old_current_funccal = current_funccal;
- hashtab_T *ht;
+ hashtab_T *ht;
+ char_u *varname;
if (current_funccal == NULL || current_funccal->func->uf_scoped == NULL) {
return NULL;
@@ -23126,10 +23125,9 @@ dictitem_T *find_var_in_scoped_ht(char_u *name, char_u **varname,
// Search in parent scope which is possible to reference from lambda
current_funccal = current_funccal->func->uf_scoped;
while (current_funccal) {
- ht = find_var_ht(name, varname ? &(*varname) : NULL);
- if (ht != NULL) {
- v = find_var_in_ht(ht, *name,
- varname ? *varname : NULL, no_autoload);
+ ht = find_var_ht(name, &varname);
+ if (ht != NULL && *varname != NUL) {
+ v = find_var_in_ht(ht, *name, varname, no_autoload);
if (v != NULL) {
break;
}
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 1c9b8f5a33..e1c7c6101b 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -299,7 +299,7 @@ static int included_patches[] = {
// 2144,
// 2143,
// 2142,
- // 2141,
+ 2141,
// 2140 NA
2139,
// 2138 NA