aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-12-10 23:18:24 +0300
committerZyX <kp-pav@yandex.ru>2017-12-10 23:18:24 +0300
commitfe55f37083b0bef07aa9ac78eb2727c244fdafd3 (patch)
treeed24dae007897bff703af3df10068171d00fb7b8
parent622d355ab46b4d9282de9db6f25701882dd8f4ab (diff)
downloadrneovim-fe55f37083b0bef07aa9ac78eb2727c244fdafd3.tar.gz
rneovim-fe55f37083b0bef07aa9ac78eb2727c244fdafd3.tar.bz2
rneovim-fe55f37083b0bef07aa9ac78eb2727c244fdafd3.zip
eval: Still check for NULL when doing :unlet
-rw-r--r--src/nvim/eval.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 064f2c072c..6271603a1d 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -2875,9 +2875,12 @@ static int do_unlet_var(lval_T *const lp, char_u *const name_end, int forceit)
ret = FAIL;
}
*name_end = cc;
- } else if (tv_check_lock(tv_list_locked(lp->ll_list),
- (const char *)lp->ll_name,
- lp->ll_name_len)
+ } else if ((lp->ll_list != NULL
+ // ll_list is not NULL when lvalue is not in a list, NULL lists
+ // yield E689.
+ && tv_check_lock(tv_list_locked(lp->ll_list),
+ (const char *)lp->ll_name,
+ lp->ll_name_len))
|| (lp->ll_dict != NULL
&& tv_check_lock(lp->ll_dict->dv_lock,
(const char *)lp->ll_name,