[v2 PATCH] widl: Only generate Proxy Stubs when functions have the call_as attribute
Huw Davies
huw at codeweavers.com
Mon Jul 10 09:52:53 CDT 2017
On Mon, Jul 10, 2017 at 12:01:02PM +0100, Huw Davies wrote:
> On Mon, Jul 10, 2017 at 10:11:42AM +0000, Alistair Leslie-Hughes wrote:
> > Fixes: https://bugs.winehq.org/show_bug.cgi?id=43302
> > diff --git a/tools/widl/header.c b/tools/widl/header.c
> > index 7b971582db..e48b488ae3 100644
> > --- a/tools/widl/header.c
> > +++ b/tools/widl/header.c
> > @@ -1172,7 +1172,7 @@ static void write_method_proto(FILE *header, const type_t *iface)
> > {
> > const var_t *func = stmt->u.var;
> >
> > - if (!is_local(func->attrs)) {
> > + if (is_callas(func->attrs)) {
> > const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV);
> > if (!callconv) callconv = "STDMETHODCALLTYPE";
> > /* proxy prototype */
>
> On further testing with midl v7, /Os does emit Proxy/Stub prototypes
> for all functions. Since widl essentially runs in this mode, I'd
> prefer to keep this behaviour if possible.
>
> In the bug you mention redefinition errors in qmgrprxy. How are you
> getting these?
It sounds like AJ is happy to go with this, but there's a build error:
make[1]: Entering directory 'dlls/windowscodecs/tests'
gcc -m32 -c -o converter.o converter.c -I. -I../../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe \
-fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \
-Wstrict-prototypes -Wtype-limits -Wvla -Wwrite-strings -Wpointer-arith -fno-omit-frame-pointer \
-Wno-deprecated-declarations -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
converter.c:711:30: warning: implicit declaration of function 'IWICBitmapFrameEncode_WriteSource_Proxy' is invalid in C99 [-Wimplicit-function-declaration]
You'll need to add the prototype to coverter.c .
Huw.
More information about the wine-devel
mailing list