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,10 +2364,15 @@ void ppu_thread::serialize_common(utils::serial& ar)
ar(optional_savestate_state, vr); ar(optional_savestate_state, vr);
if (!ar.is_writing())
{
if (optional_savestate_state->data.empty()) if (optional_savestate_state->data.empty())
{ {
optional_savestate_state->clear(); optional_savestate_state->clear();
} }
optional_savestate_state->set_reading_state();
}
} }
ppu_thread::ppu_thread(utils::serial& ar) ppu_thread::ppu_thread(utils::serial& ar)

View file

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