mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
typval_encode.c.h: avoid -Wnonnull-compare warning (#7712)
* typval_encode.c.h: avoid -Wnonnull-compare warning closes #6847 The NULL check is needed because TYPVAL_ENCODE_CONV_EMPTY_DICT may be invoked with literal `NULL`. Warning occurs even for `Debug` build-type: neovim/src/nvim/eval/typval.c: In function ‘_typval_encode_nothing_convert_one_value’: neovim/src/nvim/eval/typval.c:1802:10: warning: nonnull argument ‘tv’ compared to NULL [-Wnonnull-compare] if (tv != NULL) { \ ^ ../src/nvim/eval/typval_encode.c.h:398:9: note: in expansion of macro ‘TYPVAL_ENCODE_CONV_EMPTY_DICT’ TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, tv->vval.v_dict); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc version: gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406 * fixup! typval_encode.c.h: avoid -Wnonnull-compare warning
This commit is contained in:
parent
34057045be
commit
7164f61850
@ -1794,14 +1794,20 @@ static inline void _nothing_conv_func_end(typval_T *const tv, const int copyID)
|
||||
tv->v_lock = VAR_UNLOCKED; \
|
||||
} while (0)
|
||||
|
||||
static inline void _nothing_conv_empty_dict(typval_T *const tv,
|
||||
dict_T **const dictp)
|
||||
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_NONNULL_ARG(2)
|
||||
{
|
||||
tv_dict_unref(*dictp);
|
||||
*dictp = NULL;
|
||||
if (tv != NULL) {
|
||||
tv->v_lock = VAR_UNLOCKED;
|
||||
}
|
||||
}
|
||||
#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \
|
||||
do { \
|
||||
assert((void *)&dict != (void *)&TYPVAL_ENCODE_NODICT_VAR); \
|
||||
tv_dict_unref((dict_T *)dict); \
|
||||
*((dict_T **)&dict) = NULL; \
|
||||
if (tv != NULL) { \
|
||||
((typval_T *)tv)->v_lock = VAR_UNLOCKED; \
|
||||
} \
|
||||
_nothing_conv_empty_dict(tv, ((dict_T **)&dict)); \
|
||||
} while (0)
|
||||
|
||||
static inline int _nothing_conv_real_list_after_start(
|
||||
|
Loading…
Reference in New Issue
Block a user