Module: wine Branch: master Commit: 5e9663c064cbfdc39dac885b1954d351141ee349 URL: https://gitlab.winehq.org/wine/wine/-/commit/5e9663c064cbfdc39dac885b1954d35...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sun Nov 26 23:32:46 2023 +0100
oleaut32: Always reset return type for VarMod().
---
dlls/oleaut32/tests/vartest.c | 7 +++++++ dlls/oleaut32/variant.c | 1 + 2 files changed, 8 insertions(+)
diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c index c2b5b4113d7..4751070827c 100644 --- a/dlls/oleaut32/tests/vartest.c +++ b/dlls/oleaut32/tests/vartest.c @@ -3518,8 +3518,15 @@ static void test_Mod( int line, VARIANT *left, VARIANT *right, VARIANT *expected hres = pVarMod( left, right, &result ); ok_(__FILE__,line)( hres == expres, "wrong result %lx/%lx\n", hres, expres ); if (hres == S_OK) + { ok_(__FILE__,line)( is_expected_variant( &result, expected ), "got %s expected %s\n", variantstr(&result), variantstr(expected) ); + } + else + { + ok_(__FILE__,line)( V_VT(&result) == VT_EMPTY, "Unexpected type %d.\n", V_VT(&result) ); + ok_(__FILE__,line)( V_I4(&result) == 0x12345, "Unexpected value %ld.\n", V_I4(&result) ); + } }
#define VARMOD(vt1,vt2,val1,val2,rvt,rval) \ diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c index 9e1fefe9705..bb1e83e9b7e 100644 --- a/dlls/oleaut32/variant.c +++ b/dlls/oleaut32/variant.c @@ -5410,6 +5410,7 @@ HRESULT WINAPI VarMod(LPVARIANT left, LPVARIANT right, LPVARIANT result) VariantInit(&tempRight); VariantInit(&lv); VariantInit(&rv); + V_VT(result) = VT_EMPTY;
TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result);