[10253] Small cleanup in Unit::HasAura() to prevent redundant upper_bound calls.

This commit is contained in:
Lynx3d 2010-07-23 23:12:08 +02:00
parent 61990de6dd
commit 6c6ce87867
3 changed files with 8 additions and 2 deletions

View file

@ -4755,7 +4755,8 @@ Aura* Unit::GetAura(AuraType type, uint32 family, uint64 familyFlag, uint32 fami
bool Unit::HasAura(uint32 spellId, SpellEffectIndex effIndex) const
{
for(SpellAuraHolderMap::const_iterator i_holder = m_spellAuraHolders.lower_bound(spellId); i_holder != m_spellAuraHolders.upper_bound(spellId); ++i_holder)
SpellAuraHolderConstBounds spair = GetSpellAuraHolderBounds(spellId);
for(SpellAuraHolderMap::const_iterator i_holder = spair.first; i_holder != spair.second; ++i_holder)
if (i_holder->second->GetAuraByEffectIndex(effIndex))
return true;

View file

@ -1109,6 +1109,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
typedef std::set<Unit*> AttackerSet;
typedef std::multimap< uint32, SpellAuraHolder*> SpellAuraHolderMap;
typedef std::pair<SpellAuraHolderMap::iterator, SpellAuraHolderMap::iterator> SpellAuraHolderBounds;
typedef std::pair<SpellAuraHolderMap::const_iterator, SpellAuraHolderMap::const_iterator> SpellAuraHolderConstBounds;
typedef std::list<SpellAuraHolder *> SpellAuraHolderList;
typedef std::list<Aura *> AuraList;
typedef std::list<DiminishingReturn> Diminishing;
@ -1364,6 +1365,10 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
{
return SpellAuraHolderBounds(m_spellAuraHolders.lower_bound(spell_id), m_spellAuraHolders.upper_bound(spell_id));
}
SpellAuraHolderConstBounds GetSpellAuraHolderBounds(uint32 spell_id) const
{
return SpellAuraHolderConstBounds(m_spellAuraHolders.lower_bound(spell_id), m_spellAuraHolders.upper_bound(spell_id));
}
bool HasAuraType(AuraType auraType) const;
bool HasAura(uint32 spellId, SpellEffectIndex effIndex) const;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "10252"
#define REVISION_NR "10253"
#endif // __REVISION_NR_H__