[Scummvm-cvs-logs] SF.net SVN: scummvm: [20970] scummvm/trunk/engines/kyra/sound_adlib.cpp

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Tue Feb 28 00:50:04 CET 2006


Revision: 20970
Author:   eriktorbjorn
Date:     2006-02-28 00:49:51 -0800 (Tue, 28 Feb 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm?rev=20970&view=rev

Log Message:
-----------
This may be needless paranoia, but I always get nervous about order of
evaluation when there are multiple side-effects on the same variable (in this
case the internal state modified by va_arg()) in the same expression. So let's
just humor me and do the va_arg() calls one at a time.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/sound_adlib.cpp
Modified: scummvm/trunk/engines/kyra/sound_adlib.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_adlib.cpp	2006-02-28 07:09:46 UTC (rev 20969)
+++ scummvm/trunk/engines/kyra/sound_adlib.cpp	2006-02-28 08:49:51 UTC (rev 20970)
@@ -449,14 +449,19 @@
 }
 
 int AdlibDriver::snd_readByte(va_list &list) {
-	uint8 *ptr = _soundData + READ_LE_UINT16(&_soundData[va_arg(list, int) << 1]) + va_arg(list, int);
+	int a = va_arg(list, int);
+	int b = va_arg(list, int);
+	uint8 *ptr = _soundData + READ_LE_UINT16(&_soundData[a << 1]) + b;
 	return *ptr;
 }
 
 int AdlibDriver::snd_writeByte(va_list &list) {
-	uint8 *ptr = _soundData + READ_LE_UINT16(&_soundData[va_arg(list, int) << 1]) + va_arg(list, int);
+	int a = va_arg(list, int);
+	int b = va_arg(list, int);
+	int c = va_arg(list, int);
+	uint8 *ptr = _soundData + READ_LE_UINT16(&_soundData[a << 1]) + b;
 	uint8 oldValue = *ptr;
-	*ptr = (uint8)va_arg(list, int);
+	*ptr = (uint8)c;
 	return oldValue;
 }
 
@@ -567,7 +572,7 @@
 					unkOutput1(table);
 			} else {
 				int8 opcode = 0;
-				while (1 && table.dataptr) {
+				while (table.dataptr) {
 					uint16 command = READ_LE_UINT16(table.dataptr);
 					table.dataptr += 2;
 					if (command & 0x0080) {







More information about the Scummvm-git-logs mailing list