Skip to content

Commit da7c71b

Browse files
committed
fix(um): Join Crash
1 parent 1eadc1f commit da7c71b

File tree

4 files changed

+10
-11
lines changed

4 files changed

+10
-11
lines changed

src/plugins/core/scripting.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,6 @@ std::string scripting_GetOS();
726726
GCCSGameRules scripting_GetCCSGameRules();
727727
std::string scripting_GetPluginPath(std::string plugin_name);
728728
void scripting_StateUpdate(std::string ptr, std::string classname, std::string field, bool isStruct);
729-
PluginUserMessage scripting_GetUserMessage(std::string uuid);
729+
PluginUserMessage *scripting_GetUserMessage(std::string uuid);
730730

731731
#endif

src/plugins/core/scripting/utils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ std::string scripting_GetPluginPath(std::string plugin_name)
4444
return string_format("%s/%s", g_pluginManager->GetPluginBasePath(plugin_name).c_str(), plugin->GetName().c_str());
4545
}
4646

47-
PluginUserMessage scripting_GetUserMessage(std::string uuid)
47+
PluginUserMessage *scripting_GetUserMessage(std::string uuid)
4848
{
4949
return FetchUserMessage(uuid);
5050
}

src/usermessages/usermessages.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
#include <msgpack.hpp>
33
#include <map>
44

5-
std::map<std::string, PluginUserMessage> scriptingUserMessages;
5+
std::map<std::string, PluginUserMessage*> scriptingUserMessages;
66

7-
PluginUserMessage FetchUserMessage(std::string uuid)
7+
PluginUserMessage* FetchUserMessage(std::string uuid)
88
{
9-
if (!ExistsUserMessage(uuid)) return PluginUserMessage("");
9+
if (!ExistsUserMessage(uuid)) return nullptr;
1010
return scriptingUserMessages.at(uuid);
1111
}
1212

@@ -18,11 +18,10 @@ bool ExistsUserMessage(std::string uuid)
1818
void EraseUserMessage(std::string uuid)
1919
{
2020
if (!ExistsUserMessage(uuid)) return;
21-
2221
scriptingUserMessages.erase(uuid);
2322
}
2423

25-
std::string InsertUserMessage(PluginUserMessage um)
24+
std::string InsertUserMessage(PluginUserMessage* um)
2625
{
2726
std::string uuid = get_uuid();
2827
if (ExistsUserMessage(uuid)) EraseUserMessage(uuid);
@@ -36,8 +35,7 @@ bool UserMessages_SendNetMessage(INetChannel* pNetChan, CNetMessage* pData, int
3635
auto netmsg = pData->GetNetMessage();
3736
int playerid = FindClientByNetChannel(pNetChan);
3837

39-
PluginUserMessage um(netmsg, netmsg->GetNetMessageInfo(), pData);
40-
38+
PluginUserMessage* um = new PluginUserMessage(netmsg, netmsg->GetNetMessageInfo(), pData);
4139
std::string uuid = InsertUserMessage(um);
4240

4341
std::stringstream ss;
@@ -54,6 +52,7 @@ bool UserMessages_SendNetMessage(INetChannel* pNetChan, CNetMessage* pData, int
5452
delete event;
5553

5654
EraseUserMessage(uuid);
55+
delete um;
5756

5857
return (result != EventResult::Stop);
5958
}

src/usermessages/usermessages.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
int FindClientByNetChannel(INetChannel* pNetChan);
77
bool UserMessages_SendNetMessage(INetChannel* pNetChan, CNetMessage* pData, int a4);
88

9-
PluginUserMessage FetchUserMessage(std::string uuid);
9+
PluginUserMessage* FetchUserMessage(std::string uuid);
1010
bool ExistsUserMessage(std::string uuid);
1111
void EraseUserMessage(std::string uuid);
12-
std::string InsertUserMessage(PluginUserMessage um);
12+
std::string InsertUserMessage(PluginUserMessage* um);
1313

1414
#endif

0 commit comments

Comments
 (0)