From 84dc182a5d5e3bb7113dda93893bbb65faf68f04 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Fri, 21 Apr 2017 16:22:48 -0700 Subject: [PATCH] Core: Fix crash with rewind if savestates shrink --- CHANGES | 1 + src/core/rewind.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGES b/CHANGES index 8bb66f6ed..409129e69 100644 --- a/CHANGES +++ b/CHANGES @@ -42,6 +42,7 @@ Bugfixes: - GBA BIOS: Fix ArcTan2 sign in HLE BIOS (fixes mgba.io/i/689) - GBA Video: Don't update background scanline params in mode 0 (fixes mgba.io/i/377) - Qt: Ensure CLI backend is attached when submitting commands (fixes mgba.io/i/662) + - Core: Fix crash with rewind if savestates shrink Misc: - SDL: Remove scancode key input - GBA Video: Clean up unused timers diff --git a/src/core/rewind.c b/src/core/rewind.c index 9919acf2e..53ee67188 100644 --- a/src/core/rewind.c +++ b/src/core/rewind.c @@ -50,6 +50,8 @@ void mCoreRewindAppend(struct mCoreRewindContext* context, struct mCore* core) { if (size2 > size) { context->currentState->truncate(context->currentState, size2); size = size2; + } else if (size > size2) { + nextState->truncate(nextState, size); } void* current = context->currentState->map(context->currentState, size, MAP_READ); void* next = nextState->map(nextState, size, MAP_READ);