mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
eval: Fix errorneous early exit when converting lists and dictionaries
This commit is contained in:
parent
f21725946c
commit
efc624c2fe
@ -19151,7 +19151,7 @@ static inline int _nothing_conv_list_start(typval_T *const tv)
|
||||
#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \
|
||||
do { \
|
||||
if (_nothing_conv_list_start(tv) != NOTDONE) { \
|
||||
return OK; \
|
||||
goto typval_encode_stop_converting_one_item; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
@ -19190,7 +19190,7 @@ static inline int _nothing_conv_dict_start(typval_T *const tv,
|
||||
if (_nothing_conv_dict_start(tv, (dict_T **)&dict, \
|
||||
(void *)&TYPVAL_ENCODE_NODICT_VAR) \
|
||||
!= NOTDONE) { \
|
||||
return OK; \
|
||||
goto typval_encode_stop_converting_one_item; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
@ -565,7 +565,10 @@ _convert_one_value_regular_dict:
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
typval_encode_stop_converting_one_item:
|
||||
return OK;
|
||||
// Prevent “unused label” warnings.
|
||||
goto typval_encode_stop_converting_one_item;
|
||||
}
|
||||
|
||||
TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
||||
@ -595,6 +598,9 @@ TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
||||
== FAIL) {
|
||||
goto encode_vim_to__error_ret;
|
||||
}
|
||||
/// Label common for this and convert_one_value functions, used for escaping
|
||||
/// from macros like TYPVAL_ENCODE_CONV_DICT_START.
|
||||
typval_encode_stop_converting_one_item:
|
||||
while (_mp_size(mpstack)) {
|
||||
MPConvStackVal *cur_mpsv = &_mp_last(mpstack);
|
||||
typval_T *tv = NULL;
|
||||
@ -754,5 +760,7 @@ TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
||||
encode_vim_to__error_ret:
|
||||
_mp_destroy(mpstack);
|
||||
return FAIL;
|
||||
// Prevent “unused label” warnings.
|
||||
goto typval_encode_stop_converting_one_item;
|
||||
}
|
||||
#endif // NVIM_EVAL_TYPVAL_ENCODE_C_H
|
||||
|
Loading…
Reference in New Issue
Block a user