[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