diff options
author | Artur Twardy <[email protected]> | 2024-11-04 17:51:11 +0100 |
---|---|---|
committer | Artur Twardy <[email protected]> | 2024-11-05 07:18:12 +0000 |
commit | 0c6a49a19c8641d9b06da3553fada0c9a1d4f4c8 (patch) | |
tree | 403a4a644dc47ba87be098edced7f3410da9ccdb /src/plugins/languageclient/lualanguageclient | |
parent | 94aac9f4468a15da59f7d3187c91923fd3c6bcf8 (diff) |
Lua: Fix for client crash on callback call
Change-Id: Idd2ca77b050aa22c3c34d1fef45fac8e960c4401
Reviewed-by: Marcus Tillmanns <[email protected]>
Diffstat (limited to 'src/plugins/languageclient/lualanguageclient')
-rw-r--r-- | src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp b/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp index ebc1e522fad..ecfa6f4c4e7 100644 --- a/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp +++ b/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp @@ -34,7 +34,7 @@ namespace { class RequestWithResponse : public LanguageServerProtocol::JsonRpcMessage { - sol::function m_callback; + sol::main_function m_callback; LanguageServerProtocol::MessageId m_id; public: @@ -210,7 +210,7 @@ public: TransportType m_transportType{TransportType::StdIO}; std::function<expected_str<void>(CommandLine &)> m_cmdLineCallback; std::function<expected_str<void>(QString &)> m_initOptionsCallback; - sol::function m_asyncInitOptions; + sol::main_function m_asyncInitOptions; bool m_isUpdatingAsyncOptions{false}; AspectContainer *m_aspects{nullptr}; QString m_name; @@ -330,7 +330,7 @@ public: this, &LuaClientWrapper::onClientRemoved); - if (auto asyncInit = options.get<sol::optional<sol::function>>( + if (auto asyncInit = options.get<sol::optional<sol::main_function>>( "initializationOptionsAsync")) { m_asyncInitOptions = *asyncInit; QMetaObject::invokeMethod( @@ -379,7 +379,7 @@ public: return {}; } - void registerMessageCallback(const QString &msg, const sol::function &callback) + void registerMessageCallback(const QString &msg, const sol::main_function &callback) { m_messageCallbacks.insert(msg, callback); updateMessageCallbacks(); @@ -454,7 +454,7 @@ public: } void sendMessageWithIdForDocument_cb( - TextEditor::TextDocument *document, const sol::table &message, const sol::function callback) + TextEditor::TextDocument *document, const sol::table &message, const sol::main_function callback) { const QJsonValue messageValue = ::Lua::toJson(message); if (!messageValue.isObject()) @@ -691,7 +691,7 @@ static void registerLuaApi() return sol::lua_nil; return c->m_onInstanceStart.value(); }, - [](LuaClientWrapper *c, const sol::function &f) { c->m_onInstanceStart = f; }), + [](LuaClientWrapper *c, const sol::main_function &f) { c->m_onInstanceStart = f; }), "registerMessage", &LuaClientWrapper::registerMessageCallback, "sendMessage", |