[Scummvm-git-logs] scummvm master -> 6ad230da7c4d1bfc6e46c5f12e845ae43fe9439b

csnover csnover at users.noreply.github.com
Tue Jul 18 19:35:54 CEST 2017

This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

6ad230da7c SCI32: Fix kIsOnMe crashes in LSL7 About screen

Commit: 6ad230da7c4d1bfc6e46c5f12e845ae43fe9439b
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-07-18T12:35:06-05:00

Commit Message:
SCI32: Fix kIsOnMe crashes in LSL7 About screen

Changed paths:

diff --git a/engines/sci/graphics/screen_item32.cpp b/engines/sci/graphics/screen_item32.cpp
index 7b75531..cac643e 100644
--- a/engines/sci/graphics/screen_item32.cpp
+++ b/engines/sci/graphics/screen_item32.cpp
@@ -131,8 +131,11 @@ void ScreenItem::operator=(const ScreenItem &other) {
 	// to clear `_celObj` here; instead, it unconditionally set `_celInfo`,
 	// didn't clear `_celObj`, and did hacky stuff in `kIsOnMe` to avoid
 	// testing a mismatched `_celObj`. See `GfxFrameout::kernelIsOnMe` for
-	// more detail.
-	if (_celInfo != other._celInfo) {
+	// more detail. kCelTypeMem types are unconditionally invalidated because
+	// the properties of a CelObjMem can "change" when a game deletes a bitmap
+	// and then creates a new one that reuses the old bitmap's offset in
+	// BitmapTable (as happens in the LSL7 About screen when hovering names).
+	if (_celInfo.type == kCelTypeMem || _celInfo != other._celInfo) {
 		_celInfo = other._celInfo;
 		delete _celObj;
 		_celObj = nullptr;

More information about the Scummvm-git-logs mailing list