summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <bjorn@lindeijer.nl>2025-04-01 11:40:37 +0200
committerThorbjørn Lindeijer <bjorn@lindeijer.nl>2025-04-01 11:40:41 +0200
commitce60630c42e232bf81f22019e3499d6036a68f7e (patch)
tree08c7615faf264149229fbc681b708d5bd14d2259 /src/net
parent1d41d71eff082bb3232962ac6c4c68051f771da0 (diff)
downloadmana-ce60630c42e232bf81f22019e3499d6036a68f7e.tar.gz
mana-ce60630c42e232bf81f22019e3499d6036a68f7e.tar.bz2
mana-ce60630c42e232bf81f22019e3499d6036a68f7e.tar.xz
mana-ce60630c42e232bf81f22019e3499d6036a68f7e.zip
Fixed crash on exit when CharCreateDialog is open
* Displayed Being was deleting its SpeechBubble after the WindowContainer had already deleted it. Resolved by registering a DeathListener. * On dialog deletion, the CharHandler had become a roaming pointer but was still accessed.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/net.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/net/net.cpp b/src/net/net.cpp
index dc86bc89..a2771244 100644
--- a/src/net/net.cpp
+++ b/src/net/net.cpp
@@ -176,11 +176,25 @@ void connectToServer(ServerInfo &server)
void unload()
{
- if (generalHandler)
- {
- generalHandler->unload();
- delete generalHandler;
- }
+ if (!generalHandler)
+ return;
+
+ generalHandler->unload();
+ delete generalHandler;
+
+ adminHandler = nullptr;
+ charHandler = nullptr;
+ chatHandler = nullptr;
+ generalHandler = nullptr;
+ inventoryHandler = nullptr;
+ loginHandler = nullptr;
+ gameHandler = nullptr;
+ guildHandler = nullptr;
+ npcHandler = nullptr;
+ partyHandler = nullptr;
+ playerHandler = nullptr;
+ abilityHandler = nullptr;
+ tradeHandler = nullptr;
}
ServerType getNetworkType()