mirror of
https://github.com/neovim/neovim.git
synced 2025-09-21 10:48:18 +00:00
eval: Fix errorneous early exit when converting lists and dictionaries
This commit is contained in:
@@ -19151,7 +19151,7 @@ static inline int _nothing_conv_list_start(typval_T *const tv)
|
|||||||
#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \
|
#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \
|
||||||
do { \
|
do { \
|
||||||
if (_nothing_conv_list_start(tv) != NOTDONE) { \
|
if (_nothing_conv_list_start(tv) != NOTDONE) { \
|
||||||
return OK; \
|
goto typval_encode_stop_converting_one_item; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} 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, \
|
if (_nothing_conv_dict_start(tv, (dict_T **)&dict, \
|
||||||
(void *)&TYPVAL_ENCODE_NODICT_VAR) \
|
(void *)&TYPVAL_ENCODE_NODICT_VAR) \
|
||||||
!= NOTDONE) { \
|
!= NOTDONE) { \
|
||||||
return OK; \
|
goto typval_encode_stop_converting_one_item; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@@ -565,7 +565,10 @@ _convert_one_value_regular_dict:
|
|||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
typval_encode_stop_converting_one_item:
|
||||||
return OK;
|
return OK;
|
||||||
|
// Prevent “unused label” warnings.
|
||||||
|
goto typval_encode_stop_converting_one_item;
|
||||||
}
|
}
|
||||||
|
|
||||||
TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
||||||
@@ -595,6 +598,9 @@ TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
|||||||
== FAIL) {
|
== FAIL) {
|
||||||
goto encode_vim_to__error_ret;
|
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)) {
|
while (_mp_size(mpstack)) {
|
||||||
MPConvStackVal *cur_mpsv = &_mp_last(mpstack);
|
MPConvStackVal *cur_mpsv = &_mp_last(mpstack);
|
||||||
typval_T *tv = NULL;
|
typval_T *tv = NULL;
|
||||||
@@ -754,5 +760,7 @@ TYPVAL_ENCODE_SCOPE int _TYPVAL_ENCODE_ENCODE(
|
|||||||
encode_vim_to__error_ret:
|
encode_vim_to__error_ret:
|
||||||
_mp_destroy(mpstack);
|
_mp_destroy(mpstack);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
// Prevent “unused label” warnings.
|
||||||
|
goto typval_encode_stop_converting_one_item;
|
||||||
}
|
}
|
||||||
#endif // NVIM_EVAL_TYPVAL_ENCODE_C_H
|
#endif // NVIM_EVAL_TYPVAL_ENCODE_C_H
|
||||||
|
Reference in New Issue
Block a user