[OLE #129] fix typelib marshaler when paramflags == 0

Huw D M Davies h.davies1 at physics.ox.ac.uk
Wed Oct 26 05:08:54 CDT 2005


Needs to be applied after Rob's OLE #127

        Huw Davies <huw at codeweavers.com>
        Treat paramflags == 0 like PARAMFLAG_FIN

--- dlls/oleaut32/tmarshal.c	2005-10-26 11:01:51.000000000 +0100
+++ dlls/oleaut32/tmarshal.c	2005-10-26 11:03:33.000000000 +0100
@@ -1208,14 +1208,14 @@ xCall(LPVOID retptr, int method, TMProxy
 		TRACE_(olerelay)("%s=",relaystr(names[i+1]));
 	}
 	/* No need to marshal other data than FIN and any VT_PTR. */
-	if (!(elem->u.paramdesc.wParamFlags & PARAMFLAG_FIN) && (elem->tdesc.vt != VT_PTR)) {
+	if (!(elem->u.paramdesc.wParamFlags & PARAMFLAG_FIN || !elem->u.paramdesc.wParamFlags) && (elem->tdesc.vt != VT_PTR)) {
 	    xargs+=_argsize(elem->tdesc.vt);
 	    if (relaydeb) TRACE_(olerelay)("[out]");
 	    continue;
 	}
 	hres = serialize_param(
 	    tinfo,
-	    elem->u.paramdesc.wParamFlags & PARAMFLAG_FIN,
+	    elem->u.paramdesc.wParamFlags & PARAMFLAG_FIN || !elem->u.paramdesc.wParamFlags,
 	    relaydeb,
 	    FALSE,
 	    &elem->tdesc,
@@ -1682,7 +1682,7 @@ TMStubImpl_Invoke(
 
 	hres = deserialize_param(
 	   tinfo,
-	   elem->u.paramdesc.wParamFlags & PARAMFLAG_FIN,
+	   elem->u.paramdesc.wParamFlags & PARAMFLAG_FIN || !elem->u.paramdesc.wParamFlags,
 	   FALSE,
 	   TRUE,
 	   &(elem->tdesc),



More information about the wine-patches mailing list