aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/typval_encode.c.h
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-01-07 15:15:14 +0300
committerZyX <kp-pav@yandex.ru>2017-01-07 15:15:14 +0300
commita970c1a95785cce9176274ffd4b783c79372afed (patch)
tree2757e6ef9e6a26636166a0032177c8c45bf3ad40 /src/nvim/eval/typval_encode.c.h
parent7d0a892b374a8e5e025905a28e54b98b4f62f533 (diff)
downloadrneovim-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.h11
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: {