eval/typval: Allow NULL dict as tv_dict_get_callback() argument

Also removes NULL key input: tv_dict_find() does not allow this.
This commit is contained in:
ZyX 2017-03-26 03:42:23 +03:00
parent f4256243db
commit 58e34e8d99
2 changed files with 3 additions and 5 deletions

View File

@ -825,8 +825,7 @@ void tv_dict_watcher_add(dict_T *const dict, const char *const key_pattern,
/// @param[in] cb2 Second callback to check.
///
/// @return True if they are equal, false otherwise.
static bool tv_callback_equal(const Callback *const cb1,
const Callback *const cb2)
bool tv_callback_equal(const Callback *const cb1, const Callback *const cb2)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
{
if (cb1->type != cb2->type) {
@ -1240,7 +1239,7 @@ const char *tv_dict_get_string_buf(const dict_T *const d, const char *const key,
bool tv_dict_get_callback(dict_T *const d,
const char *const key, const ptrdiff_t key_len,
Callback *const result)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
FUNC_ATTR_NONNULL_ARG(2, 4) FUNC_ATTR_WARN_UNUSED_RESULT
{
result->type = kCallbackNone;

View File

@ -1736,8 +1736,7 @@ describe('typval.c', function()
return cb_lua, ret
end
itp('works with NULL dict', function()
eq({{type='none'}, true},
{tv_dict_get_callback(nil, nil, 0)})
eq({{type='none'}, true}, {tv_dict_get_callback(nil, '')})
end)
itp('works', function()
local lua_d = {