[Scummvm-cvs-logs] SF.net SVN: scummvm:[54835] scummvm/trunk/engines/hugo

strangerke at users.sourceforge.net strangerke at users.sourceforge.net
Wed Dec 8 22:18:48 CET 2010


Revision: 54835
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54835&view=rev
Author:   strangerke
Date:     2010-12-08 21:18:48 +0000 (Wed, 08 Dec 2010)

Log Message:
-----------
HUGO: Hopefully fix overlapping memory regions

Thanks Digitall for debugging that

Modified Paths:
--------------
    scummvm/trunk/engines/hugo/object_v1d.cpp
    scummvm/trunk/engines/hugo/object_v1w.cpp
    scummvm/trunk/engines/hugo/object_v3d.cpp

Modified: scummvm/trunk/engines/hugo/object_v1d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/object_v1d.cpp	2010-12-08 20:51:44 UTC (rev 54834)
+++ scummvm/trunk/engines/hugo/object_v1d.cpp	2010-12-08 21:18:48 UTC (rev 54835)
@@ -361,9 +361,9 @@
 	seqList_t tmpSeqList[MAX_SEQUENCES];
 	int seqListSize = sizeof(seqList_t) * MAX_SEQUENCES;
 
-	memcpy(tmpSeqList, _objects[objNumb1].seqList, seqListSize);
-	memcpy(_objects[objNumb1].seqList, _objects[objNumb2].seqList, seqListSize);
-	memcpy(_objects[objNumb2].seqList, tmpSeqList, seqListSize);
+	memmove(tmpSeqList, _objects[objNumb1].seqList, seqListSize);
+	memmove(_objects[objNumb1].seqList, _objects[objNumb2].seqList, seqListSize);
+	memmove(_objects[objNumb2].seqList, tmpSeqList, seqListSize);
 	_objects[objNumb1].currImagePtr = _objects[objNumb1].seqList[0].seqPtr;
 	_objects[objNumb2].currImagePtr = _objects[objNumb2].seqList[0].seqPtr;
 	_vm->_heroImage = (_vm->_heroImage == HERO) ? objNumb2 : HERO;

Modified: scummvm/trunk/engines/hugo/object_v1w.cpp
===================================================================
--- scummvm/trunk/engines/hugo/object_v1w.cpp	2010-12-08 20:51:44 UTC (rev 54834)
+++ scummvm/trunk/engines/hugo/object_v1w.cpp	2010-12-08 21:18:48 UTC (rev 54835)
@@ -371,9 +371,9 @@
 	seqList_t tmpSeqList[MAX_SEQUENCES];
 	int seqListSize = sizeof(seqList_t) * MAX_SEQUENCES;
 
-	memcpy(tmpSeqList, _objects[objNumb1].seqList, seqListSize);
-	memcpy(_objects[objNumb1].seqList, _objects[objNumb2].seqList, seqListSize);
-	memcpy(_objects[objNumb2].seqList, tmpSeqList, seqListSize);
+	memmove(tmpSeqList, _objects[objNumb1].seqList, seqListSize);
+	memmove(_objects[objNumb1].seqList, _objects[objNumb2].seqList, seqListSize);
+	memmove(_objects[objNumb2].seqList, tmpSeqList, seqListSize);
 	restoreSeq(&_objects[objNumb1]);
 	_objects[objNumb2].currImagePtr = _objects[objNumb2].seqList[0].seqPtr;
 	_vm->_heroImage = (_vm->_heroImage == HERO) ? objNumb2 : HERO;

Modified: scummvm/trunk/engines/hugo/object_v3d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/object_v3d.cpp	2010-12-08 20:51:44 UTC (rev 54834)
+++ scummvm/trunk/engines/hugo/object_v3d.cpp	2010-12-08 21:18:48 UTC (rev 54835)
@@ -255,9 +255,9 @@
 	seqList_t tmpSeqList[MAX_SEQUENCES];
 	int seqListSize = sizeof(seqList_t) * MAX_SEQUENCES;
 
-	memcpy(tmpSeqList, _objects[objNumb1].seqList, seqListSize);
-	memcpy(_objects[objNumb1].seqList, _objects[objNumb2].seqList, seqListSize);
-	memcpy(_objects[objNumb2].seqList, tmpSeqList, seqListSize);
+	memmove(tmpSeqList, _objects[objNumb1].seqList, seqListSize);
+	memmove(_objects[objNumb1].seqList, _objects[objNumb2].seqList, seqListSize);
+	memmove(_objects[objNumb2].seqList, tmpSeqList, seqListSize);
 	restoreSeq(&_objects[objNumb1]);
 	_objects[objNumb2].currImagePtr = _objects[objNumb2].seqList[0].seqPtr;
 	_vm->_heroImage = (_vm->_heroImage == HERO) ? objNumb2 : HERO;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list