[Scummvm-cvs-logs] SF.net SVN: scummvm: [29235] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Sat Oct 20 01:00:43 CEST 2007


Revision: 29235
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29235&view=rev
Author:   drmccoy
Date:     2007-10-19 16:00:43 -0700 (Fri, 19 Oct 2007)

Log Message:
-----------
Fixing the Gob3 CD crash on ARM systems/ports

Modified Paths:
--------------
    scummvm/trunk/engines/gob/game_v1.cpp
    scummvm/trunk/engines/gob/game_v2.cpp
    scummvm/trunk/engines/gob/global.h
    scummvm/trunk/engines/gob/gob.h

Modified: scummvm/trunk/engines/gob/game_v1.cpp
===================================================================
--- scummvm/trunk/engines/gob/game_v1.cpp	2007-10-19 22:59:35 UTC (rev 29234)
+++ scummvm/trunk/engines/gob/game_v1.cpp	2007-10-19 23:00:43 UTC (rev 29235)
@@ -1060,14 +1060,14 @@
 						_vm->_util->prepareStr(_collStr);
 
 					if (strcmp(_tempStr, _collStr) == 0) {
-						VAR(17)++;
+						WRITE_VAR(17, VAR(17) + 1);
 						WRITE_VAR(17 + var_26, 1);
 						break;
 					}
 				} while (READ_LE_UINT16(descArray[var_24].ptr - 2) > pos);
 				collStackPos++;
 			} else {
-				VAR(17 + var_26) = 2;
+				WRITE_VAR(17 + var_26, 2);
 			}
 			var_24++;
 			var_26++;

Modified: scummvm/trunk/engines/gob/game_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/game_v2.cpp	2007-10-19 22:59:35 UTC (rev 29234)
+++ scummvm/trunk/engines/gob/game_v2.cpp	2007-10-19 23:00:43 UTC (rev 29235)
@@ -1094,14 +1094,14 @@
 						_vm->_util->prepareStr(_collStr);
 
 					if (strcmp(_tempStr, _collStr) == 0) {
-						VAR(17)++;
+						WRITE_VAR(17, VAR(17) + 1);
 						WRITE_VAR(17 + var_26, 1);
 						break;
 					}
 				} while (READ_LE_UINT16(descArray[var_24].ptr - 2) > pos);
 				collStackPos++;
 			} else {
-				VAR(17 + var_26) = 2;
+				WRITE_VAR(17 + var_26, 2);
 			}
 			var_24++;
 			var_26++;

Modified: scummvm/trunk/engines/gob/global.h
===================================================================
--- scummvm/trunk/engines/gob/global.h	2007-10-19 22:59:35 UTC (rev 29234)
+++ scummvm/trunk/engines/gob/global.h	2007-10-19 23:00:43 UTC (rev 29235)
@@ -27,6 +27,7 @@
 #define GOB_GLOBAL_H
 
 #include "common/file.h"
+#include "common/endian.h"
 
 #include "gob/video.h"
 
@@ -156,11 +157,11 @@
 	}
 
 	void writeVar(uint32 offset, uint32 val) {
-		(*(uint32 *)(_inter_variables + offset)) = val;
+		WRITE_UINT32(_inter_variables + offset, val);
 		writeVarSize(offset, 3);
 	}
 	void writeVar(uint32 offset, uint16 val) {
-		(*(uint16 *)(_inter_variables + offset)) = val;
+		WRITE_UINT16(_inter_variables + offset, val);
 		writeVarSize(offset, 1);
 	}
 	void writeVar(uint32 offset, uint8 val) {

Modified: scummvm/trunk/engines/gob/gob.h
===================================================================
--- scummvm/trunk/engines/gob/gob.h	2007-10-19 22:59:35 UTC (rev 29234)
+++ scummvm/trunk/engines/gob/gob.h	2007-10-19 23:00:43 UTC (rev 29235)
@@ -63,8 +63,8 @@
 #define WRITE_VAR_UINT16(var, val)	WRITE_VARO_UINT16((var) << 2, (val))
 #define WRITE_VAR_UINT8(var, val)	WRITE_VARO_UINT8((var) << 2, (val))
 #define WRITE_VAR_STR(var, str)		WRITE_VARO_STR((var) << 2, (str))
-#define READ_VARO_UINT32(offs)		(*((uint32 *) VARP(offs)))
-#define READ_VARO_UINT16(offs)		(*((uint16 *) VARP(offs)))
+#define READ_VARO_UINT32(offs)		READ_UINT32(VARP(offs))
+#define READ_VARO_UINT16(offs)		READ_UINT16(VARP(offs))
 #define READ_VARO_UINT8(offs)		(*((uint8 *) VARP(offs)))
 #define READ_VAR_UINT32(var)		READ_VARO_UINT32((var) << 2)
 #define READ_VAR_UINT16(var)		READ_VARO_UINT16((var) << 2)


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