[PATCH] Add a VT_INT_PTR case for VARIANT_UserSize
Nikolay Sivov
nsivov at codeweavers.com
Tue Mar 2 05:06:08 CST 2010
---
dlls/oleaut32/tests/usrmarshal.c | 11 +++++++++--
dlls/oleaut32/usrmarshal.c | 2 ++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/tests/usrmarshal.c b/dlls/oleaut32/tests/usrmarshal.c
index 9275837..4cd12f2 100644
--- a/dlls/oleaut32/tests/usrmarshal.c
+++ b/dlls/oleaut32/tests/usrmarshal.c
@@ -1215,7 +1215,7 @@ static void test_marshal_VARIANT(void)
next = VARIANT_UserMarshal(&umcb.Flags, buffer, &v);
ok(next == buffer + stubMsg.BufferLength, "got %p expect %p\n", next, buffer + stubMsg.BufferLength);
wirev = (DWORD*)buffer;
-
+
check_variant_header(wirev, &v, stubMsg.BufferLength);
wirev += 5;
ok(*wirev == 0x4, "wv[5] %08x\n", *wirev);
@@ -1500,8 +1500,15 @@ static void test_marshal_VARIANT(void)
IUnknown_Release((IUnknown *)heap_unknown);
}
HeapFree(GetProcessHeap(), 0, oldbuffer);
-}
+ /*** VT_INT_PTR ***/
+ VariantInit(&v);
+ V_VT(&v) = VT_INT_PTR;
+ V_INT_PTR(&v) = 0;
+
+ ul = VARIANT_UserSize(&umcb.Flags, 0, &v);
+ ok(ul == 24, "size %d\n", ul);
+}
START_TEST(usrmarshal)
{
diff --git a/dlls/oleaut32/usrmarshal.c b/dlls/oleaut32/usrmarshal.c
index 402794c..30b00d8 100644
--- a/dlls/oleaut32/usrmarshal.c
+++ b/dlls/oleaut32/usrmarshal.c
@@ -239,6 +239,8 @@ static unsigned int get_type_size(ULONG *pFlags, VARTYPE vt)
case VT_DISPATCH:
case VT_RECORD:
return 0;
+ case VT_INT_PTR:
+ return sizeof(INT_PTR);
default:
FIXME("unhandled VT %d\n", vt);
return 0;
--
1.5.6.5
--=-0T8X2YKLDaZGdnSazYzS--
More information about the wine-patches
mailing list