mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 01:08:20 +00:00
fix(api/nvim_win_call): share common win_execute logic
We have to be sure that the bugs fixed in the previous patches also apply to nvim_win_call. Checking v8.1.2124 and v8.2.4026 is especially important as these patches were only applied to win_execute, but nvim_win_call is also affected by the same bugs. A lot of win_execute's logic can be shared with nvim_win_call, so factor it out into a common macro to reduce the possibility of this happening again.
This commit is contained in:
@@ -457,12 +457,10 @@ Object nvim_win_call(Window window, LuaRef fun, Error *err)
|
||||
|
||||
try_start();
|
||||
Object res = OBJECT_INIT;
|
||||
switchwin_T switchwin;
|
||||
if (switch_win_noblock(&switchwin, win, tabpage, true) == OK) {
|
||||
WIN_EXECUTE(win, tabpage, {
|
||||
Array args = ARRAY_DICT_INIT;
|
||||
res = nlua_call_ref(fun, NULL, args, true, err);
|
||||
}
|
||||
restore_win_noblock(&switchwin, true);
|
||||
});
|
||||
try_end(err);
|
||||
return res;
|
||||
}
|
||||
|
Reference in New Issue
Block a user