advapi32: Correct tests under WOW64 (try 2)

Alexandre Julliard julliard at
Mon Mar 12 04:23:54 CDT 2012

Vitaliy Margolen <wine-devel at> writes:

> On 03/10/2012 09:44 AM, André Hentschel wrote:
>> Am 10.03.2012 17:37, schrieb Vitaliy Margolen:
>>> On 03/10/2012 12:36 AM, Alistair Leslie-Hughes wrote:
>>>> Hi,
>>>> Marked test as broken if it returns true.
>>>> +    /* WoW64 return TRUE with the LastError set */
>>>> +    ok((!ret&&  GetLastError() == ERROR_INSUFFICIENT_BUFFER) || broken(ret),
>>>>           "%d with error %d\n", ret, GetLastError());
>>> This is incorrect. You can check or report result of GetLastError(). But not both at the same time. You have to store the result in additional variable. Then compare and report it.
>> Really? That's quite common practice. The value won't change between the two GetLastError() calls.
> It sure can change.

Of course not.

>> The only thing which is bad is if you test a function inside the ok() macro and report the last error in the same ok().
> Isn't that what I said? To clarify, it applies to any printf type
> function that has call to GetLastError() as a parameter.

There's nothing magical about printf.

Alexandre Julliard
julliard at

More information about the wine-devel mailing list