Alistair Leslie-Hughes : xactengine3_7: Explicity copy the XACT_RUNTIME_PARAMETERS members.

Alexandre Julliard julliard at winehq.org
Mon Oct 5 15:54:59 CDT 2020


Module: wine
Branch: master
Commit: 8ea0607befc4c1ad349cd85c6587aa91a6d0220d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8ea0607befc4c1ad349cd85c6587aa91a6d0220d

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Fri Oct  2 17:23:24 2020 +1000

xactengine3_7: Explicity copy the XACT_RUNTIME_PARAMETERS members.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49911
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/xactengine3_7/xact_dll.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/dlls/xactengine3_7/xact_dll.c b/dlls/xactengine3_7/xact_dll.c
index 84ed35d2c4..281aecc154 100644
--- a/dlls/xactengine3_7/xact_dll.c
+++ b/dlls/xactengine3_7/xact_dll.c
@@ -776,7 +776,16 @@ static HRESULT WINAPI IXACT3EngineImpl_Initialize(IXACT3Engine *iface,
 
     TRACE("(%p)->(%p)\n", This, pParams);
 
-    memcpy(&params, pParams, sizeof(FACTRuntimeParameters));
+    memset(&params, 0, sizeof(FACTRuntimeParameters));
+    /* Explicitly copy to the FAudio structure as the packing is wrong under 64 bits */
+    params.lookAheadTime = pParams->lookAheadTime;
+    params.pGlobalSettingsBuffer = pParams->pGlobalSettingsBuffer;
+    params.globalSettingsBufferSize = pParams->globalSettingsBufferSize;
+    params.globalSettingsFlags = pParams->globalSettingsFlags;
+    params.globalSettingsAllocAttributes = pParams->globalSettingsAllocAttributes;
+    params.pRendererID = (int16_t*)pParams->pRendererID;
+    params.pXAudio2 = NULL;
+    params.pMasteringVoice = NULL;
 
     /* FIXME: pXAudio2 and pMasteringVoice are pointers to
      * IXAudio2/IXAudio2MasteringVoice objects. FACT wants pointers to
@@ -789,12 +798,10 @@ static HRESULT WINAPI IXACT3EngineImpl_Initialize(IXACT3Engine *iface,
      * -flibit
      */
     if (pParams->pXAudio2 != NULL){
-        FIXME("pXAudio2 parameter not supported! Falling back to NULL\n");
-        params.pXAudio2 = NULL;
+        FIXME("pXAudio2 parameter not supported!\n");
 
         if (pParams->pMasteringVoice != NULL){
-            FIXME("pXAudio2 parameter not supported! Falling back to NULL\n");
-            params.pMasteringVoice = NULL;
+            FIXME("pMasteringVoice parameter not supported!\n");
         }
     }
 




More information about the wine-cvs mailing list