diff options
| author | Spp <spp@jorge.gr> | 2013-05-30 13:14:06 +0200 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2013-05-30 13:18:29 +0200 |
| commit | 9664c0ab5cc7449f2e839fb60b6b87c9d56dfb92 (patch) | |
| tree | 092af4d16233823423cc552c567acb3307380951 /src/server/game/Achievements/AchievementMgr.cpp | |
| parent | 782ea4309a4d392ba9933caace067d567703c84b (diff) | |
Core/Misc: Another batch of fixes for issues found by static analysis
Diffstat (limited to 'src/server/game/Achievements/AchievementMgr.cpp')
| -rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index b7b065a8b31..00bffb8f21c 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -1639,6 +1639,9 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achievementCriteria, AchievementEntry const* achievement) { + if (!achievement) + return false; + // counter can never complete if (achievement->flags & ACHIEVEMENT_FLAG_COUNTER) return false; @@ -1951,8 +1954,11 @@ void AchievementMgr::SetCriteriaProgress(AchievementCriteriaEntry const* entry, SendCriteriaUpdate(entry, progress, timeElapsed, timedCompleted); } -void AchievementMgr::RemoveCriteriaProgress(const AchievementCriteriaEntry* entry) +void AchievementMgr::RemoveCriteriaProgress(AchievementCriteriaEntry const* entry) { + if (!entry) + return; + CriteriaProgressMap::iterator criteriaProgress = m_criteriaProgress.find(entry->ID); if (criteriaProgress == m_criteriaProgress.end()) return; @@ -2127,12 +2133,11 @@ void AchievementMgr::SendRespondInspectAchievements(Player* player) const */ void AchievementMgr::BuildAllDataPacket(WorldPacket* data) const { - AchievementEntry const* achievement = NULL; for (CompletedAchievementMap::const_iterator iter = m_completedAchievements.begin(); iter != m_completedAchievements.end(); ++iter) { // Skip hidden achievements - achievement = sAchievementMgr->GetAchievement(iter->first); - if (achievement->flags & ACHIEVEMENT_FLAG_HIDDEN) + AchievementEntry const* achievement = sAchievementMgr->GetAchievement(iter->first); + if (!achievement || achievement->flags & ACHIEVEMENT_FLAG_HIDDEN) continue; *data << uint32(iter->first); |
