comparison src/eval.c @ 9731:f85d94eee05b v7.4.2141

commit https://github.com/vim/vim/commit/ba96e9af388804364425185b47eed14988302865 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 1 17:10:20 2016 +0200 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.
author Christian Brabandt <cb@256bit.org>
date Mon, 01 Aug 2016 17:15:06 +0200
parents 80ac9cf77c9b
children 8037eb704e93
comparison
equal deleted inserted replaced
9730:ba92bc887d14 9731:f85d94eee05b
2836 return FAIL; 2836 return FAIL;
2837 } 2837 }
2838 } 2838 }
2839 hi = hash_find(ht, varname); 2839 hi = hash_find(ht, varname);
2840 if (HASHITEM_EMPTY(hi)) 2840 if (HASHITEM_EMPTY(hi))
2841 hi = find_hi_in_scoped_ht(name, &varname, &ht); 2841 hi = find_hi_in_scoped_ht(name, &ht);
2842 if (hi != NULL && !HASHITEM_EMPTY(hi)) 2842 if (hi != NULL && !HASHITEM_EMPTY(hi))
2843 { 2843 {
2844 di = HI2DI(hi); 2844 di = HI2DI(hi);
2845 if (var_check_fixed(di->di_flags, name, FALSE) 2845 if (var_check_fixed(di->di_flags, name, FALSE)
2846 || var_check_ro(di->di_flags, name, FALSE) 2846 || var_check_ro(di->di_flags, name, FALSE)
7342 ret = find_var_in_ht(ht, *name, varname, no_autoload || htp != NULL); 7342 ret = find_var_in_ht(ht, *name, varname, no_autoload || htp != NULL);
7343 if (ret != NULL) 7343 if (ret != NULL)
7344 return ret; 7344 return ret;
7345 7345
7346 /* Search in parent scope for lambda */ 7346 /* Search in parent scope for lambda */
7347 return find_var_in_scoped_ht(name, varname ? &varname : NULL, 7347 return find_var_in_scoped_ht(name, no_autoload || htp != NULL);
7348 no_autoload || htp != NULL);
7349 } 7348 }
7350 7349
7351 /* 7350 /*
7352 * Find variable "varname" in hashtab "ht" with name "htname". 7351 * Find variable "varname" in hashtab "ht" with name "htname".
7353 * Returns NULL if not found. 7352 * Returns NULL if not found.
7682 } 7681 }
7683 v = find_var_in_ht(ht, 0, varname, TRUE); 7682 v = find_var_in_ht(ht, 0, varname, TRUE);
7684 7683
7685 /* Search in parent scope which is possible to reference from lambda */ 7684 /* Search in parent scope which is possible to reference from lambda */
7686 if (v == NULL) 7685 if (v == NULL)
7687 v = find_var_in_scoped_ht(name, varname ? &varname : NULL, TRUE); 7686 v = find_var_in_scoped_ht(name, TRUE);
7688 7687
7689 if ((tv->v_type == VAR_FUNC || tv->v_type == VAR_PARTIAL) 7688 if ((tv->v_type == VAR_FUNC || tv->v_type == VAR_PARTIAL)
7690 && var_check_func_name(name, v == NULL)) 7689 && var_check_func_name(name, v == NULL))
7691 return; 7690 return;
7692 7691