diff options
author | ZyX <kp-pav@yandex.ru> | 2017-01-07 15:15:14 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-01-07 15:15:14 +0300 |
commit | a970c1a95785cce9176274ffd4b783c79372afed (patch) | |
tree | 2757e6ef9e6a26636166a0032177c8c45bf3ad40 /src/nvim/eval/typval_encode.c.h | |
parent | 7d0a892b374a8e5e025905a28e54b98b4f62f533 (diff) | |
download | rneovim-a970c1a95785cce9176274ffd4b783c79372afed.tar.gz rneovim-a970c1a95785cce9176274ffd4b783c79372afed.tar.bz2 rneovim-a970c1a95785cce9176274ffd4b783c79372afed.zip |
eval: Make sure that copyID is reset when needed
Works by making value pushed on stack represent the exhausted list.
Fixes #5901, except for dictionaries which need similar adjustment.
Diffstat (limited to 'src/nvim/eval/typval_encode.c.h')
-rw-r--r-- | src/nvim/eval/typval_encode.c.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nvim/eval/typval_encode.c.h b/src/nvim/eval/typval_encode.c.h index 3e1170b8fa..bade067ea6 100644 --- a/src/nvim/eval/typval_encode.c.h +++ b/src/nvim/eval/typval_encode.c.h @@ -129,6 +129,16 @@ /// point to a special dictionary. /// @param len List length. Is an expression which evaluates to an integer. +/// @def TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START +/// @brief Macros used after pushing list onto the stack +/// +/// Only used for real list_T* lists, not for special dictionaries or partial +/// arguments. +/// +/// @param tv Pointer to typval where value is stored. May be NULL. May +/// point to a special dictionary. +/// @param mpsv Pushed MPConvStackVal value. + /// @def TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS /// @brief Macros used after finishing converting non-last list item /// @@ -354,6 +364,7 @@ static int _TYPVAL_ENCODE_CONVERT_ONE_VALUE( }, }, })); + TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START(tv, _mp_last(*mpstack)); break; } case VAR_SPECIAL: { |