mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-18 11:19:10 +00:00
Fix logic error that causes slow string lookup
Recall that plKey object IDs are index-1 (unless they key is fixed, in which case the ID is always 0), whereas vectors are index-0. JOY TO THE HAX!
This commit is contained in:
@ -169,9 +169,11 @@ bool plRegistryKeyList::SetKeyUnused(plKeyImp* key, LoadStatus& loadStatusChange
|
|||||||
// Fixed Keys use ID == 0
|
// Fixed Keys use ID == 0
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
hsAssert(key->GetUoid().GetLocation() == plLocation::kGlobalFixedLoc, "key id == 0 but not fixed?");
|
hsAssert(key->GetUoid().GetLocation() == plLocation::kGlobalFixedLoc, "key id == 0 but not fixed?");
|
||||||
else if (id < fKeys.size()) {
|
|
||||||
if (fKeys[id]->GetUoid().GetObjectID() == id)
|
// Recall that vectors are index zero but normal object IDs are index one...
|
||||||
foundKey = fKeys[id];
|
else if (id <= fKeys.size()) {
|
||||||
|
if (fKeys[id-1]->GetUoid().GetObjectID() == id)
|
||||||
|
foundKey = fKeys[id-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Last chance: do a slow name search for that key.
|
// Last chance: do a slow name search for that key.
|
||||||
|
Reference in New Issue
Block a user