Merge pull request #3782 from lioncash/stable-bool

ChunkFile: Handle bool in a stable way across platforms
This commit is contained in:
Pierre Bourdon 2016-04-15 10:22:29 +02:00
commit f980e20b6b
2 changed files with 15 additions and 1 deletions

View File

@ -213,6 +213,20 @@ public:
DoVoid((void*)&x, sizeof(x));
}
void Do(bool& x)
{
// bool's size can vary depending on platform, which can
// cause breakages. This treats all bools as if they were
// 8 bits in size.
u8 stable = static_cast<u8>(x);
Do(stable);
if (mode == MODE_READ)
x = stable != 0;
}
template <typename T>
void DoPointer(T*& x, T* const base)
{

View File

@ -71,7 +71,7 @@ static Common::Event g_compressAndDumpStateSyncEvent;
static std::thread g_save_thread;
// Don't forget to increase this after doing changes on the savestate system
static const u32 STATE_VERSION = 53; // Last changed in PR 3759
static const u32 STATE_VERSION = 54; // Last changed in PR 3782
// Maps savestate versions to Dolphin versions.
// Versions after 42 don't need to be added to this list,