On 10/11/2012 04:30 AM, Dmitry Timoshkov wrote:
"Vincas Miliūnas" vincas.miliunas@gmail.com wrote:
- Renamed DUMMYUNIONNAME to u.
...
+typedef struct _FILE_ID_DESCRIPTOR {
- DWORD dwSize;
- FILE_ID_TYPE Type;
- union {
LARGE_INTEGER FileId;
GUID ObjectId;
- } u;
+} FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
This change is clearly wrong.
As far as I know WINE does not use anonymous unions to preserve compatibility with compilers that do not support them. For the unions that need to be accessed in the code, letter u is used to name them. git grep '.u.' | wc -l returns 2523 lines of such usage to access union members.
Of course the union can be removed and replaced by a single FileId field. Also an issue might be that WinBase.h does not follow the standard practice and defines struct FILE_ID_DESCRIPTOR instead of the struct _FILE_ID_DESCRIPTOR like I submitted.
Unless you mind sharing why it is wrong, I will not be able to read your mind.
Thanks for feedback.