Fix unnecessary ConCommand cache misses (#1256)
This commit is contained in:
parent
13621a1274
commit
5177cfdf97
@ -108,20 +108,20 @@ public:
|
||||
listener = listener->next;
|
||||
}
|
||||
|
||||
while (iter != tracked_bases.end())
|
||||
{
|
||||
if ((*iter)->pBase == pBase)
|
||||
{
|
||||
pInfo = (*iter);
|
||||
iter = tracked_bases.erase(iter);
|
||||
pInfo->cls->OnUnlinkConCommandBase(pBase, pBase->GetName());
|
||||
delete pInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
}
|
||||
}
|
||||
while (iter != tracked_bases.end())
|
||||
{
|
||||
if ((*iter)->pBase == pBase)
|
||||
{
|
||||
pInfo = (*iter);
|
||||
iter = tracked_bases.erase(iter);
|
||||
pInfo->cls->OnUnlinkConCommandBase(pBase, pBase->GetName());
|
||||
delete pInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AddTarget(ConCommandBase *pBase, IConCommandTracker *cls)
|
||||
|
@ -182,11 +182,19 @@ private:
|
||||
{
|
||||
static inline bool matches(const char *name, ConCommandBase *base)
|
||||
{
|
||||
return strcmp(name, base->GetName()) == 0;
|
||||
const char *conCommandChars = base->GetName();
|
||||
|
||||
ke::AString conCommandName = ke::AString(conCommandChars).lowercase();
|
||||
ke::AString input = ke::AString(name).lowercase();
|
||||
|
||||
return conCommandName == input;
|
||||
}
|
||||
static inline uint32_t hash(const detail::CharsAndLength &key)
|
||||
{
|
||||
return key.hash();
|
||||
ke::AString original(key.chars());
|
||||
ke::AString lower = original.lowercase();
|
||||
|
||||
return detail::CharsAndLength(lower.chars()).hash();
|
||||
}
|
||||
};
|
||||
NameHashSet<ConCommandBase *, ConCommandPolicy> m_CmdFlags;
|
||||
|
Loading…
Reference in New Issue
Block a user