Browse Source

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!
Adam Johnson 11 years ago
parent
commit
366a9a11a4
  1. 8
      Sources/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.cpp

8
Sources/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.cpp

@ -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.

Loading…
Cancel
Save