[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