[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