diff --git a/src/nvim/context.c b/src/nvim/context.c index f7ed800aa7..acf793c39a 100644 --- a/src/nvim/context.c +++ b/src/nvim/context.c @@ -380,7 +380,7 @@ int ctx_from_dict(Dictionary dict, Context *ctx, Error *err) assert(ctx != NULL); int types = 0; - for (size_t i = 0; i < dict.size; i++) { + for (size_t i = 0; i < dict.size && !ERROR_SET(err); i++) { KeyValuePair item = dict.items[i]; if (item.value.type != kObjectTypeArray) { continue; diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index bc7e747916..8bbadda9b0 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -1982,7 +1982,7 @@ describe('API', function() it('errors when context dictionary is invalid', function() eq('E474: Failed to convert list to msgpack string buffer', - pcall_err(nvim, 'load_context', { regs = { {} } })) + pcall_err(nvim, 'load_context', { regs = { {} }, jumps = { {} } })) eq("Empty dictionary keys aren't allowed", pcall_err(nvim, 'load_context', { regs = { { [''] = '' } } })) end) diff --git a/test/functional/vimscript/ctx_functions_spec.lua b/test/functional/vimscript/ctx_functions_spec.lua index 66a8ec3550..17607f0794 100644 --- a/test/functional/vimscript/ctx_functions_spec.lua +++ b/test/functional/vimscript/ctx_functions_spec.lua @@ -378,7 +378,7 @@ describe('context functions', function() it('errors when context dictionary is invalid', function() call('ctxpush') eq('Vim:E474: Failed to convert list to msgpack string buffer', - pcall_err(call, 'ctxset', { regs = { {} } })) + pcall_err(call, 'ctxset', { regs = { {} }, jumps = { {} } })) end) it('sets context dictionary at index in context stack', function()