mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-21 00:39:53 +00:00
Savestates/MSVC: Replace bugged std::unique (compiler bug)
This commit is contained in:
parent
c75b76ddf5
commit
cf77bb7cfc
@ -2008,10 +2008,27 @@ namespace vm
|
||||
if (loc) loc->get_shared_memory(shared);
|
||||
}
|
||||
|
||||
shared.erase(std::unique(shared.begin(), shared.end(), [](auto& a, auto& b) { return a.first == b.first; }), shared.end());
|
||||
|
||||
std::map<utils::shm*, usz> shared_map;
|
||||
|
||||
#ifndef _MSC_VER
|
||||
shared.erase(std::unique(shared.begin(), shared.end(), [](auto& a, auto& b) { return a.first == b.first; }), shared.end());
|
||||
#else
|
||||
// Workaround for bugged std::unique
|
||||
for (auto it = shared.begin(); it != shared.end();)
|
||||
{
|
||||
if (shared_map.count(it->first))
|
||||
{
|
||||
it = shared.erase(it);
|
||||
continue;
|
||||
}
|
||||
|
||||
shared_map.emplace(it->first, 0);
|
||||
it++;
|
||||
}
|
||||
|
||||
shared_map.clear();
|
||||
#endif
|
||||
|
||||
for (auto& p : shared)
|
||||
{
|
||||
shared_map.emplace(p.first, &p - shared.data());
|
||||
|
Loading…
x
Reference in New Issue
Block a user