diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-07-24 18:57:13 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-07-24 18:57:13 +0200 |
commit | 8f2c5413d7a3775a304c793653d41caabf3ba997 (patch) | |
tree | 8e17fde47807585eef0f9b7c7a1cc1b7ce061438 /src | |
parent | 67dc22849797e4701004b4e456f28c033d762f19 (diff) |
Core/DataStores: Fixed unsigned underflow in TaxiMask constructor happening before TaxiNodes.db2 is loaded
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DB2Stores.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index 4bff5ce4d23..425fb7ed91d 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -1516,6 +1516,11 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul _wmoAreaTableLookup[WMOAreaTableKey(entry->WmoID, entry->NameSetID, entry->WmoGroupID)] = entry; // Initialize global taxinodes mask + // reinitialize internal storage for globals after loading TaxiNodes.db2 + sTaxiNodesMask = {}; + sHordeTaxiNodesMask = {}; + sAllianceTaxiNodesMask = {}; + sOldContinentsNodesMask = {}; // include existed nodes that have at least single not spell base (scripted) path for (TaxiNodesEntry const* node : sTaxiNodesStore) { @@ -3388,7 +3393,8 @@ bool ItemLevelSelectorQualityEntryComparator::Compare(ItemLevelSelectorQualityEn TaxiMask::TaxiMask() { - _data.resize(((sTaxiNodesStore.GetNumRows() - 1) / (sizeof(value_type) * 8)) + 1, 0); + if (sTaxiNodesStore.GetNumRows()) + _data.resize(((sTaxiNodesStore.GetNumRows() - 1) / (sizeof(value_type) * 8)) + 1, 0); } bool DB2Manager::FriendshipRepReactionEntryComparator::Compare(FriendshipRepReactionEntry const* left, FriendshipRepReactionEntry const* right) |