Fixed buffer underflow in sound code when rate was changed several times.

This commit is contained in:
n-a-c-h
2005-01-12 17:00:34 +00:00
parent 5a41aafe0a
commit 756f75c10b

View File

@@ -966,13 +966,18 @@ void CheckTimers(void)
}
}
//Why in the world did someone make this use signed values??? -Nach
void UpdateSound(void *userdata, Uint8 * stream, int len)
{
int left;
int left = Buffer_len - Buffer_head;
left = Buffer_len - Buffer_head;
if (left < 0)
{
return;
}
if (left <= len) {
if (left <= len)
{
memcpy(stream, &Buffer[Buffer_head], left);
stream += left;
len -= left;
@@ -980,7 +985,8 @@ void UpdateSound(void *userdata, Uint8 * stream, int len)
Buffer_fill -= left;
}
if (len) {
if (len)
{
memcpy(stream, &Buffer[Buffer_head], len);
Buffer_head += len;
Buffer_fill -= len;