[5/8] widl: dereference operator in expr work on any declared pointer

Michael Karcher wine at mkarcher.dialup.fu-berlin.de
Sat Jan 10 17:03:54 CST 2009


Am Samstag, den 10.01.2009, 22:41 +0000 schrieb Rob Shearman:
> 2009/1/10 Michael Karcher <wine at mkarcher.dialup.fu-berlin.de>:
> > If we take MIDL 6.00.0366 as reference, the following method type is
> > legal:
> >
> >        void frobnicate([size_is(x),in,out] int * bar1,
> >                        [size_is(*bar1),out] int * bar2,
> >                        [in] int x);
> >
> Also, can you add a test for this in dlls/rpcrt4/tests/server.c?

Yes, of course. I didn't know that a widl test existed. Would be
*really* great if the crosstest of this test could use MIDL generated
client/server code instead of WIDL one, but when I tried some time ago
it looked like getting MIDL to run in Wine needs some work.

If I write a test for

       void frobnicate([size_is(x),in,out] int * bar1,
                       [size_is(*bar1),out] int bar2[],
                       [in] int x);

instead, I can also test that bar1 is null-pointer-checked while bar2
gets away with being NULL as long as *bar1 is 0 on exit of the function.
This is what [6/8] fixes in widl.

Regards,
  Michael Karcher




More information about the wine-devel mailing list