Savestates: Fix optional_savestate_state use
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user