-void S_ClearBuffer(void)
-{
- int clear;
- unsigned char *pbuf;
-
- if (!sound_started || !shm)
- return;
-
- if (shm->format.width == 1)
- clear = 0x80; // 8 bit sound (unsigned)
- else
- clear = 0; // 16 bit sound (signed)
-
- pbuf = S_LockBuffer();
- if (pbuf != NULL)
- {
- int setsize = shm->samples * shm->format.width;
-
- while (setsize--)
- *pbuf++ = clear;
-
- // on i586/i686 optimized versions of glibc, glibc *wrongly* IMO,
- // reads the memory area before writing to it causing a seg fault
- // since the memory is PROT_WRITE only and not PROT_READ|PROT_WRITE
- //memset(shm->buffer, clear, shm->samples * shm->format.width);
-
- S_UnlockBuffer ();
- }
-}
-
-