Donna Whisnant : oleaut32: Fix DispCallFunc() stdcall test to be ABI not x64 specific.

Alexandre Julliard julliard at winehq.org
Mon Nov 6 14:37:34 CST 2017


Module: wine
Branch: master
Commit: c4ac2d285dd3c0c4aa3282eb70dc51d5ab4d5fcd
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c4ac2d285dd3c0c4aa3282eb70dc51d5ab4d5fcd

Author: Donna Whisnant <dewhisna at dewtronics.com>
Date:   Sat Nov  4 11:04:15 2017 -0500

oleaut32: Fix DispCallFunc() stdcall test to be ABI not x64 specific.

The tests checking callee stack cleaning for stdcall vs. cdecl should
be a function of the calling ABI of the platform, not whether it is
64-bit or not.  This fixes the check for platforms like ARM that may
be 32-bit but that do not use the stdcall convention of callee stack
cleaning.

Signed-off-by: Donna Whisnant <dewhisna at dewtronics.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/oleaut32/tests/typelib.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c
index d8ff310..bb70164 100644
--- a/dlls/oleaut32/tests/typelib.c
+++ b/dlls/oleaut32/tests/typelib.c
@@ -92,6 +92,12 @@ static WCHAR wszguid[] = {'g','u','i','d',0};
 
 static const BOOL is_win64 = sizeof(void *) > sizeof(int);
 
+#ifdef __i386__
+static const BOOL abi_supports_stdcall = TRUE;
+#else
+static const BOOL abi_supports_stdcall = FALSE;
+#endif
+
 static HRESULT WINAPI invoketest_QueryInterface(IInvokeTest *iface, REFIID riid, void **ret)
 {
     if (IsEqualIID(riid, &IID_IUnknown) ||
@@ -1115,7 +1121,7 @@ static void test_DispCallFunc(void)
     ok( V_UI4(&result) == 4321, "wrong result %u\n", V_UI4(&result) );
 
     /* the function checks the argument sizes for stdcall */
-    if (!is_win64)  /* no stdcall on 64-bit */
+    if (abi_supports_stdcall)
     {
         res = DispCallFunc( NULL, (ULONG_PTR)stdcall_func, CC_STDCALL, VT_UI4, 0, types, pargs, &result );
         ok( res == DISP_E_BADCALLEE, "DispCallFunc wrong error %x\n", res );




More information about the wine-cvs mailing list