Rob Shearman : oleaut32: Clear the input pvar structure in VARIANT_UserUnmarshal to free the data instead of just initializing .

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 20 08:11:02 CDT 2007


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

Author: Rob Shearman <rob at codeweavers.com>
Date:   Mon Mar 19 14:58:11 2007 +0000

oleaut32: Clear the input pvar structure in VARIANT_UserUnmarshal to free the data instead of just initializing.

---

 dlls/oleaut32/tests/usrmarshal.c |    1 -
 dlls/oleaut32/usrmarshal.c       |    2 +-
 2 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/dlls/oleaut32/tests/usrmarshal.c b/dlls/oleaut32/tests/usrmarshal.c
index 1a9d25c..a168d8f 100644
--- a/dlls/oleaut32/tests/usrmarshal.c
+++ b/dlls/oleaut32/tests/usrmarshal.c
@@ -1188,7 +1188,6 @@ static void test_marshal_VARIANT(void)
            V_VT(V_VARIANTREF(&v)), V_VT(V_VARIANTREF(&v3)));
         ok(V_R8(V_VARIANTREF(&v)) == V_R8(V_VARIANTREF(&v3)), "r8s differ\n");
         VARIANT_UserFree(&umcb.Flags, &v3);
-        todo_wine
         ok(heap_unknown->refs == 1, "%d refcounts of IUnknown leaked\n", heap_unknown->refs - 1);
         IUnknown_Release((IUnknown *)heap_unknown);
     }
diff --git a/dlls/oleaut32/usrmarshal.c b/dlls/oleaut32/usrmarshal.c
index 71d7d6b..eea46c6 100644
--- a/dlls/oleaut32/usrmarshal.c
+++ b/dlls/oleaut32/usrmarshal.c
@@ -554,7 +554,7 @@ unsigned char * WINAPI VARIANT_UserUnmarshal(ULONG *pFlags, unsigned char *Buffe
     TRACE("(%x,%p,%p)\n", *pFlags, Buffer, pvar);
 
     ALIGN_POINTER(Buffer, 7);
-    VariantInit(pvar);
+    VariantClear(pvar);
 
     header = (variant_wire_t *)Buffer; 
     




More information about the wine-cvs mailing list