Mercurial > vim
diff src/dict.c @ 20128:0b35a7ffceb2 v8.2.0619
patch 8.2.0619: null dict is not handled like an empty dict
Commit: https://github.com/vim/vim/commit/ea04a6e8baff2f27da7cdd54bf70a5525994f76d
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 23 13:38:02 2020 +0200
patch 8.2.0619: null dict is not handled like an empty dict
Problem: Null dict is not handled like an empty dict.
Solution: Fix the code and add tests. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/5968)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 23 Apr 2020 13:45:04 +0200 |
parents | fc3cdc819d80 |
children | 0e1dfff4f294 |
line wrap: on
line diff
--- a/src/dict.c +++ b/src/dict.c @@ -977,14 +977,15 @@ dict_equal( dictitem_T *item2; int todo; - if (d1 == NULL && d2 == NULL) - return TRUE; - if (d1 == NULL || d2 == NULL) - return FALSE; if (d1 == d2) return TRUE; if (dict_len(d1) != dict_len(d2)) return FALSE; + if (dict_len(d1) == 0) + // empty and NULL dicts are considered equal + return TRUE; + if (d1 == NULL || d2 == NULL) + return FALSE; todo = (int)d1->dv_hashtab.ht_used; for (hi = d1->dv_hashtab.ht_array; todo > 0; ++hi)