Debugger: Fix infinite loop in symbol storage (#1134)

This commit is contained in:
goeiecool9999 2024-03-27 11:14:01 +01:00 committed by GitHub
parent 4f3d4624f5
commit 5230fcab37
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -45,12 +45,17 @@ public:
static void ClearRange(MPTR address, uint32 length)
{
if (length == 0)
return;
s_lock.lock();
while (length > 0)
for (;;)
{
auto itr = s_typeStorage.find(address);
if (itr != s_typeStorage.end())
s_typeStorage.erase(itr);
if (length <= 4)
break;
address += 4;
length -= 4;
}
@ -60,4 +65,4 @@ public:
private:
static FSpinlock s_lock;
static std::unordered_map<MPTR, DEBUG_SYMBOL_TYPE> s_typeStorage;
};
};