diff options
author | Jack <66967891+ASpoonPlaysGames@users.noreply.github.com> | 2023-10-15 20:57:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-15 21:57:41 +0200 |
commit | 98af0dcbb45972d4af22ea0d26a3a2c518ea9b13 (patch) | |
tree | 0f56979e5ff44f19c3ff98358f6016bfda09fc4d | |
parent | fb7b538c2fc772fa5fcbecc20593d5b3f4622a35 (diff) | |
download | NorthstarLauncher-98af0dcbb45972d4af22ea0d26a3a2c518ea9b13.tar.gz NorthstarLauncher-98af0dcbb45972d4af22ea0d26a3a2c518ea9b13.zip |
Move plugin communication handler init out of plugin manager init (#581)
Plugin state requires this to be initialised even if `-noplugins` is passed, but if `-noplugins` is passed, it doesn't get initialised.
Moving this to `dllmain` guarantees that it is initialised properly and prevents #580
-rw-r--r-- | NorthstarDLL/dllmain.cpp | 2 | ||||
-rw-r--r-- | NorthstarDLL/plugins/pluginbackend.cpp | 6 | ||||
-rw-r--r-- | NorthstarDLL/plugins/pluginbackend.h | 4 | ||||
-rw-r--r-- | NorthstarDLL/plugins/plugins.cpp | 2 |
4 files changed, 3 insertions, 11 deletions
diff --git a/NorthstarDLL/dllmain.cpp b/NorthstarDLL/dllmain.cpp index cfcc1a8c..1a80b3ed 100644 --- a/NorthstarDLL/dllmain.cpp +++ b/NorthstarDLL/dllmain.cpp @@ -5,6 +5,7 @@ #include "config/profile.h" #include "plugins/plugin_abi.h" #include "plugins/plugins.h" +#include "plugins/pluginbackend.h" #include "util/version.h" #include "squirrel/squirrel.h" #include "shared/gamepresence.h" @@ -62,6 +63,7 @@ bool InitialiseNorthstar() g_pGameStatePresence = new GameStatePresence(); g_pPluginManager = new PluginManager(); + g_pPluginCommunicationhandler = new PluginCommunicationHandler(); g_pPluginManager->LoadPlugins(); InitialiseSquirrelManagers(); diff --git a/NorthstarDLL/plugins/pluginbackend.cpp b/NorthstarDLL/plugins/pluginbackend.cpp index 091ddd2f..f9766235 100644 --- a/NorthstarDLL/plugins/pluginbackend.cpp +++ b/NorthstarDLL/plugins/pluginbackend.cpp @@ -15,12 +15,6 @@ PluginCommunicationHandler* g_pPluginCommunicationhandler; static PluginDataRequest storedRequest {PluginDataRequestType::END, (PluginRespondDataCallable) nullptr}; -void init_plugincommunicationhandler() -{ - g_pPluginCommunicationhandler = new PluginCommunicationHandler; - g_pPluginCommunicationhandler->requestQueue = {}; -} - void PluginCommunicationHandler::RunFrame() { std::lock_guard<std::mutex> lock(requestMutex); diff --git a/NorthstarDLL/plugins/pluginbackend.h b/NorthstarDLL/plugins/pluginbackend.h index 898b3a99..bcbccbd8 100644 --- a/NorthstarDLL/plugins/pluginbackend.h +++ b/NorthstarDLL/plugins/pluginbackend.h @@ -33,12 +33,10 @@ class PluginCommunicationHandler void GeneratePresenceObjects(); public: - std::queue<PluginDataRequest> requestQueue; + std::queue<PluginDataRequest> requestQueue = {}; std::mutex requestMutex; PluginEngineData m_sEngineData {}; }; -void init_plugincommunicationhandler(); - extern PluginCommunicationHandler* g_pPluginCommunicationhandler; diff --git a/NorthstarDLL/plugins/plugins.cpp b/NorthstarDLL/plugins/plugins.cpp index 0c4c7fd6..5e28e12d 100644 --- a/NorthstarDLL/plugins/plugins.cpp +++ b/NorthstarDLL/plugins/plugins.cpp @@ -226,8 +226,6 @@ bool PluginManager::LoadPlugins() funcs.relayInviteFunc = nullptr; funcs.createObject = CreateObject; - init_plugincommunicationhandler(); - data.version = ns_version.c_str(); data.northstarModule = g_NorthstarModule; |