dsound: Correctly update buflen.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Huw Davies 2017-02-26 17:42:21 +00:00 committed by Alexandre Julliard
parent 371c43550c
commit 3076192e7d
1 changed files with 4 additions and 4 deletions

View File

@ -250,18 +250,18 @@ static HRESULT DSOUND_PrimaryOpen(DirectSoundDevice *device, WAVEFORMATEX *wfx,
}
FillMemory(newbuf, new_buflen, (wfx->wBitsPerSample == 8) ? 128 : 0);
} else if (!mixfloat) {
DWORD alloc_len = frames * sizeof(float);
new_buflen = frames * sizeof(float);
if (device->buffer)
newbuf = HeapReAlloc(GetProcessHeap(), 0, device->buffer, alloc_len);
newbuf = HeapReAlloc(GetProcessHeap(), 0, device->buffer, new_buflen);
else
newbuf = HeapAlloc(GetProcessHeap(), 0, alloc_len);
newbuf = HeapAlloc(GetProcessHeap(), 0, new_buflen);
if (!newbuf) {
ERR("failed to allocate primary buffer\n");
return DSERR_OUTOFMEMORY;
}
FillMemory(newbuf, alloc_len, (wfx->wBitsPerSample == 8) ? 128 : 0);
FillMemory(newbuf, new_buflen, (wfx->wBitsPerSample == 8) ? 128 : 0);
} else {
HeapFree(GetProcessHeap(), 0, device->buffer);
newbuf = NULL;