aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui.h
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2024-06-20 14:48:06 +0200
committerLuuk van Baal <luukvbaal@gmail.com>2024-11-14 13:23:11 +0100
commitde48fbbd5f8800bd7f1909a6fb41e53e871cf74c (patch)
treeb394143235cc15259d6bf8b08729da73d5633ba4 /src/nvim/ui.h
parent7d771c3eeef5b4dca9ebc5ed6f7ca03f2b26b6bc (diff)
downloadrneovim-de48fbbd5f8800bd7f1909a6fb41e53e871cf74c.tar.gz
rneovim-de48fbbd5f8800bd7f1909a6fb41e53e871cf74c.tar.bz2
rneovim-de48fbbd5f8800bd7f1909a6fb41e53e871cf74c.zip
fix(messages)!: vim.ui_attach message callbacks are unsafe
Problem: Lua callbacks for "msg_show" events with vim.ui_attach() are executed when it is not safe. Solution: Disallow non-fast API calls for "msg_show" event callbacks. Automatically detach callback after excessive errors. Make sure fast APIs do not modify Nvim state.
Diffstat (limited to 'src/nvim/ui.h')
-rw-r--r--src/nvim/ui.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/nvim/ui.h b/src/nvim/ui.h
index 8718c7b506..4aeb8ffda9 100644
--- a/src/nvim/ui.h
+++ b/src/nvim/ui.h
@@ -18,4 +18,6 @@ EXTERN Array noargs INIT(= ARRAY_DICT_INIT);
#endif
// uncrustify:on
-EXTERN MultiQueue *resize_events;
+// vim.ui_attach() namespace of currently executed callback.
+EXTERN uint32_t ui_event_ns_id INIT( = 0);
+EXTERN MultiQueue *resize_events INIT( = NULL);