diff options
author | ZyX <kp-pav@yandex.ru> | 2017-01-06 22:48:50 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-01-06 22:48:50 +0300 |
commit | 6584fb723ad9fcdc96bbefdf79c638b840bc5655 (patch) | |
tree | 02ff9a13338ec993c9529eab85df93765ce91519 /src/nvim/eval.c | |
parent | 7f11ec00fd483b70d463de5f7661966ffc10a5d1 (diff) | |
download | rneovim-6584fb723ad9fcdc96bbefdf79c638b840bc5655.tar.gz rneovim-6584fb723ad9fcdc96bbefdf79c638b840bc5655.tar.bz2 rneovim-6584fb723ad9fcdc96bbefdf79c638b840bc5655.zip |
eval/typval_encode: Use TYPVAL_ENCODE_CONV_EMPTY_DICT for partials
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index ac00d04630..e31e3118fa 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -19127,11 +19127,14 @@ static inline void _nothing_conv_func_end(typval_T *const tv) tv->v_lock = VAR_UNLOCKED; \ } while (0) -#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv) \ +#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \ do { \ - dict_unref(tv->vval.v_dict); \ - tv->vval.v_dict = NULL; \ - tv->v_lock = VAR_UNLOCKED; \ + assert((void *)&dict != (void *)&TYPVAL_ENCODE_NODICT_VAR); \ + dict_unref((dict_T *)dict); \ + *((dict_T **)&dict) = NULL; \ + if (tv != NULL) { \ + ((typval_T *)tv)->v_lock = VAR_UNLOCKED; \ + } \ } while (0) static inline int _nothing_conv_list_start(typval_T *const tv) |