aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXanadu <none@none>2010-05-29 03:16:39 +0200
committerXanadu <none@none>2010-05-29 03:16:39 +0200
commitd104f19469f9a63636f16e0d0765cd6798bccf4b (patch)
tree200c4bb985b503d082a889722bafc3733776e831
parentde97bd4f00df0265d1c352611d40d82ffacf45d4 (diff)
*Properly initialize members to prevent DB logging before the DB is started. Fixes a rarely seen startup crash.
*Code cleanup. --HG-- branch : trunk
-rw-r--r--src/game/World.cpp4
-rw-r--r--src/shared/Database/Database.cpp2
-rw-r--r--src/shared/Log.cpp5
-rw-r--r--src/trinitycore/Master.cpp16
-rw-r--r--src/trinityrealm/Main.cpp22
5 files changed, 12 insertions, 37 deletions
diff --git a/src/game/World.cpp b/src/game/World.cpp
index ded635cbf87..9b2c61b6b7d 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -1720,10 +1720,8 @@ void World::SetInitialWorldSettings()
sLog.SetLogDB(true);
}
else
- {
sLog.SetLogDB(false);
- sLog.SetLogDBLater(false);
- }
+
sScriptMgr.OnServerStartup();
sLog.outString("WORLD: World initialized");
}
diff --git a/src/shared/Database/Database.cpp b/src/shared/Database/Database.cpp
index 73924b485ce..379388d7997 100644
--- a/src/shared/Database/Database.cpp
+++ b/src/shared/Database/Database.cpp
@@ -39,7 +39,7 @@
size_t Database::db_count = 0;
-Database::Database()
+Database::Database() : mMysql(NULL)
{
// before first connection
if (db_count++ == 0)
diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp
index d35b25a9069..187b9eaa79b 100644
--- a/src/shared/Log.cpp
+++ b/src/shared/Log.cpp
@@ -31,8 +31,9 @@ INSTANTIATE_SINGLETON_1( Log );
Log::Log() :
raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL),
- dberLogfile(NULL), chatLogfile(NULL), m_gmlog_per_account(false), m_colored(false)
- , arenaLogFile(NULL)
+ dberLogfile(NULL), chatLogfile(NULL), m_gmlog_per_account(false),
+ m_enableLogDBLater(false), m_enableLogDB(false), m_colored(false),
+ arenaLogFile(NULL)
{
Initialize();
}
diff --git a/src/trinitycore/Master.cpp b/src/trinitycore/Master.cpp
index a4618e01562..adc3e144c68 100644
--- a/src/trinitycore/Master.cpp
+++ b/src/trinitycore/Master.cpp
@@ -499,19 +499,9 @@ bool Master::_StartDB()
sLog.outString("Realm running as realm ID %d", realmID);
///- Initialize the DB logging system
- if(sConfig.GetBoolDefault("EnableLogDB", false))
- {
- // everything successful - set var to enable DB logging once startup finished.
- sLog.SetLogDBLater(true);
- sLog.SetLogDB(false);
- sLog.SetRealmID(realmID);
- }
- else
- {
- sLog.SetLogDBLater(false);
- sLog.SetLogDB(false);
- sLog.SetRealmID(realmID);
- }
+ sLog.SetLogDBLater(sConfig.GetBoolDefault("EnableLogDB", false)); // set var to enable DB logging once startup finished.
+ sLog.SetLogDB(false);
+ sLog.SetRealmID(realmID);
///- Clean the database before starting
clearOnlineAccounts();
diff --git a/src/trinityrealm/Main.cpp b/src/trinityrealm/Main.cpp
index f926aebf616..c642f57bd7e 100644
--- a/src/trinityrealm/Main.cpp
+++ b/src/trinityrealm/Main.cpp
@@ -199,21 +199,10 @@ extern int main(int argc, char **argv)
return 1;
///- Initialize the log database
- if (sConfig.GetBoolDefault("EnableLogDB", false))
- {
- // everything successful - set var to enable DB logging once startup finished.
- sLog.SetLogDBLater(true);
- sLog.SetLogDB(false);
- // ensure we've set realm to 0 (realmd realmid)
- sLog.SetRealmID(0);
- }
- else
- {
- sLog.SetLogDBLater(false);
- sLog.SetLogDB(false);
- sLog.SetRealmID(0);
- }
-
+ sLog.SetLogDBLater(sConfig.GetBoolDefault("EnableLogDB", false)); // set var to enable DB logging once startup finished.
+ sLog.SetLogDB(false);
+ sLog.SetRealmID(0); // ensure we've set realm to 0 (realmd realmid)
+
///- Get the list of realms for the server
sRealmList->Initialize(sConfig.GetIntDefault("RealmsStateUpdateDelay", 20));
if (sRealmList->size() == 0)
@@ -306,10 +295,7 @@ extern int main(int argc, char **argv)
sLog.SetLogDB(true);
}
else
- {
sLog.SetLogDB(false);
- sLog.SetLogDBLater(false);
- }
///- Wait for termination signal
while (!stopEvent)