aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/encode.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-12-10 22:41:00 +0300
committerZyX <kp-pav@yandex.ru>2017-12-10 22:41:00 +0300
commit7572d5ac5a09c18651843c026ebc92bffafe348f (patch)
tree3f95763c901d054fab97d867f3627a482dc354da /src/nvim/eval/encode.c
parent0b03ac2cb2399a850bb71d8c0a76d0893bf503cb (diff)
downloadrneovim-7572d5ac5a09c18651843c026ebc92bffafe348f.tar.gz
rneovim-7572d5ac5a09c18651843c026ebc92bffafe348f.tar.bz2
rneovim-7572d5ac5a09c18651843c026ebc92bffafe348f.zip
eval/encode: Fix crash in json_encode test suite
Diffstat (limited to 'src/nvim/eval/encode.c')
-rw-r--r--src/nvim/eval/encode.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/eval/encode.c b/src/nvim/eval/encode.c
index 0e5db84ad5..50ddb1f38c 100644
--- a/src/nvim/eval/encode.c
+++ b/src/nvim/eval/encode.c
@@ -136,8 +136,10 @@ static int conv_error(const char *const msg, const MPConvStack *const mpstack,
}
case kMPConvPairs:
case kMPConvList: {
- const listitem_T *const li = TV_LIST_ITEM_PREV(v.data.l.list,
- v.data.l.li);
+ const listitem_T *const li = (v.data.l.li == NULL
+ ? tv_list_last(v.data.l.list)
+ : TV_LIST_ITEM_PREV(v.data.l.list,
+ v.data.l.li));
int idx = (int)tv_list_idx_of_item(v.data.l.list, li);
if (v.type == kMPConvList
|| li == NULL