rsx: Fix simple_array<T>::erase_if

This commit is contained in:
kd-11 2025-04-13 23:01:05 +03:00
parent fcb6bc70f8
commit 8d41249f6f

View file

@ -390,14 +390,22 @@ namespace rsx
}
bool ret = false;
for (auto ptr = _data, last = _data + _size - 1; ptr < last; ptr++)
for (auto ptr = _data, last = _data + _size - 1; ptr <= last; ptr++)
{
if (predicate(*ptr))
{
ret = true;
if (ptr == last)
{
// Popping the last entry from list. Just set the new size and exit
_size--;
break;
}
// Move item to the end of the list and shrink by 1
std::memcpy(ptr, last, sizeof(Ty));
last = _data + (--_size);
ret = true;
}
}