ntdll: Remove unneeded NONAMELESSXXX directives.

Francois Gouget fgouget at free.fr
Fri Mar 13 21:18:31 CDT 2015


Ignore this patch, it does not compile... but only in 64bit mode. I'll 
send an updated one.


On Fri, 13 Mar 2015, Francois Gouget wrote:
[...]
> diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
[...]
> -#define NONAMELESSUNION
>  #define NONAMELESSSTRUCT

This is the problem: 64bit code does not compile if NONAMELESSSTRUCT is 
defined but not NONAMELESSUNION. That's because the 64bit 
KNONVOLATILE_CONTEXT_POINTERS struct then looks like this:

{
    ...
    union {
        ...
        struct { ... } s;
    }; // Normally called u.
    union {
        ...
        struct { ... } s;
    }; // Normally called u2.
};

So there is no way to determine whether one is accessing the content of 
the first struct or the second struct. Unfortunately we are stuck as 
that's really how it is in the PSDK.

-- 
Francois Gouget <fgouget at free.fr>              http://fgouget.free.fr/
          Demander si un ordinateur peut penser revient à demander
                         si un sous-marin peut nager.


More information about the wine-devel mailing list