From 416025cda90f23ea5b94c88dcea0c202df279223 Mon Sep 17 00:00:00 2001 From: Lars Skovlund Date: Mon, 8 Nov 2010 11:02:43 +0000 Subject: Fix assertion failure in SCI0 saving code svn-id: r54138 --- engines/sci/engine/savegame.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'engines') diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index 072c4db57b..3ced5a4f9d 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -411,15 +411,19 @@ void Script::syncStringHeap(Common::Serializer &s) { do { int blockType = READ_LE_UINT16(buf); - int blockSize = READ_LE_UINT16(buf + 2); - assert(blockSize > 0); - + int blockSize; if (blockType == 0) break; + + blockSize = READ_LE_UINT16(buf + 2); + assert(blockSize > 0); + + if (blockType == SCI_OBJ_STRINGS) s.syncBytes(buf, blockSize); buf += blockSize; + if (_buf - buf == 0) break; } while (1); -- cgit v1.2.3