Sweden-Number/dlls/xaudio2_7
Sebastian Lackner c649ec3a02 xaudio2: Use assembly wrapper to call OnVoiceProcessingPassStart callback.
During a callback function, some games use the wrong function
signature for an xaudio2 function, which changed between xaudio2
versions.  As a result, the EDI and ESI registers are overwritten by
the game.  Apparently Windows's implementation happens not to use
these registers in a way that causes the crash.

This patch pushes EDI and ESI onto the stack before calling the
callback, then pops them back after the callback exits.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42520
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43358
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-01 21:50:58 +01:00
..
tests xaudio2: Don't return XAudio28 interface for XAudio2[0..7] objects in QueryInterface(). 2018-10-15 23:09:07 +02:00
Makefile.in
compat.c
x3daudio.c
xapofx.c
xaudio2_7.spec
xaudio_classes.idl
xaudio_dll.c xaudio2: Use assembly wrapper to call OnVoiceProcessingPassStart callback. 2018-11-01 21:50:58 +01:00
xaudio_private.h