aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-01-17 17:59:13 +0100
committerShauren <shauren.trinity@gmail.com>2015-01-17 17:59:13 +0100
commit8a30b70a20dd483067d402a7966fc147ca32d18a (patch)
tree1a91e998e32ce58f7d0f20f766760240648725d0 /src/server/game
parent1c7d25238bd89dfe3a6e5824abb728b4b47e7c26 (diff)
Core/DataStores: Optimized memory usage for DB2Storage
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 708bb0cccd1..d6560e6679a 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -74,24 +74,27 @@ inline void LoadDB2(uint32& availableDb2Locales, DB2StoreProblemList& errlist, D
std::string db2_filename = db2_path + filename;
if (storage.Load(db2_filename.c_str(), uint32(sWorld->GetDefaultDbcLocale())))
{
- storage.LoadSQLData();
+ storage.LoadFromDB();
for (uint32 i = 0; i < TOTAL_LOCALES; ++i)
{
- if (!(availableDb2Locales & (1 << i)))
- continue;
-
if (uint32(sWorld->GetDefaultDbcLocale()) == i)
continue;
- std::string localizedName(db2_path);
- localizedName.append(localeNames[i]);
- localizedName.push_back('/');
- localizedName.append(filename);
+ if (availableDb2Locales & (1 << i))
+ {
+ std::string localizedName(db2_path);
+ localizedName.append(localeNames[i]);
+ localizedName.push_back('/');
+ localizedName.append(filename);
+
+ if (!storage.LoadStringsFrom(localizedName.c_str(), i))
+ availableDb2Locales &= ~(1 << i); // mark as not available for speedup next checks
+ }
- if (!storage.LoadStringsFrom(localizedName.c_str(), i))
- availableDb2Locales &= ~(1<<i); // mark as not available for speedup next checks
+ storage.LoadStringsFromDB(i);
}
+
}
else
{