Savestates: Fix optional_savestate_state use

This commit is contained in:
Eladash 2023-11-25 19:06:13 +02:00 committed by Elad Ashkenazi
parent c7c2baae03
commit 5dbeb68ed2
2 changed files with 13 additions and 4 deletions

View File

@ -2364,9 +2364,14 @@ void ppu_thread::serialize_common(utils::serial& ar)
ar(optional_savestate_state, vr);
if (optional_savestate_state->data.empty())
if (!ar.is_writing())
{
optional_savestate_state->clear();
if (optional_savestate_state->data.empty())
{
optional_savestate_state->clear();
}
optional_savestate_state->set_reading_state();
}
}

View File

@ -12,12 +12,16 @@ namespace id_manager
template <>
bool serialize<std::shared_ptr<utils::serial>>(utils::serial& ar, std::shared_ptr<utils::serial>& o)
{
if (!o || !ar.is_writing())
if (!o)
{
o.reset();
o = std::make_shared<utils::serial>();
}
if (!ar.is_writing())
{
o->set_reading_state();
}
ar(o->data);
return true;
}