summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--src/main.cpp9
-rw-r--r--src/net/network.h3
3 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b0ca058f..202eec74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,9 @@
installing of dejavusans.ttf font.
* src/gui/chat.h, src/gui/chat.cpp: Merged two maps into one, avoid
non-const operator[] and check whether channel was found.
+ * src/main.cpp, src/net/network.h: Since the connection objects might
+ not have been created yet when an exception is thrown, check them for
+ 0 before calling disconnect on them.
2008-04-19 Yohann Ferreira <bertram@cegetel.net>
diff --git a/src/main.cpp b/src/main.cpp
index 4aadbb74..9ac4b9a3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1120,9 +1120,12 @@ int main(int argc, char *argv[])
logger->log("Exception");
}
- accountServerConnection->disconnect();
- gameServerConnection->disconnect();
- chatServerConnection->disconnect();
+ if (accountServerConnection)
+ accountServerConnection->disconnect();
+ if (gameServerConnection)
+ gameServerConnection->disconnect();
+ if (chatServerConnection)
+ chatServerConnection->disconnect();
delete accountServerConnection;
delete gameServerConnection;
diff --git a/src/net/network.h b/src/net/network.h
index 0701a956..42590adf 100644
--- a/src/net/network.h
+++ b/src/net/network.h
@@ -50,6 +50,9 @@ namespace Net
*/
void finalize();
+ /**
+ * Returns a new Connection object. Should be deleted by the caller.
+ */
Connection *getConnection();
/**