[1/2] include: Make IMAGE_RESOURCE_DIRECTORY_ENTRY match PSDK definition.
Dmitry Timoshkov
dmitry at baikal.ru
Mon Apr 29 02:19:17 CDT 2013
---
dlls/kernel32/resource.c | 62 ++++++++++++++++++++++++------------------------
dlls/ntdll/resource.c | 22 ++++++++---------
dlls/user32/exticon.c | 12 +++++-----
dlls/ver.dll16/version.c | 12 +++++-----
dlls/version/version.c | 8 +++----
include/winnt.h | 16 ++++++-------
libs/wine/loader.c | 4 ++--
tools/winedump/pe.c | 29 +++++++++++-----------
8 files changed, 81 insertions(+), 84 deletions(-)
diff --git a/dlls/kernel32/resource.c b/dlls/kernel32/resource.c
index 0235b3c..a9491e0 100644
--- a/dlls/kernel32/resource.c
+++ b/dlls/kernel32/resource.c
@@ -219,9 +219,9 @@ BOOL WINAPI EnumResourceTypesA( HMODULE hmod, ENUMRESTYPEPROCA lpfun, LONG_PTR l
et = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(resdir + 1);
for (i = 0; i < resdir->NumberOfNamedEntries+resdir->NumberOfIdEntries; i++)
{
- if (et[i].u1.s1.NameIsString)
+ if (et[i].u.s.NameIsString)
{
- str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)resdir + et[i].u1.s1.NameOffset);
+ str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)resdir + et[i].u.s.NameOffset);
newlen = WideCharToMultiByte( CP_ACP, 0, str->NameString, str->Length, NULL, 0, NULL, NULL);
if (newlen + 1 > len)
{
@@ -235,7 +235,7 @@ BOOL WINAPI EnumResourceTypesA( HMODULE hmod, ENUMRESTYPEPROCA lpfun, LONG_PTR l
}
else
{
- ret = lpfun( hmod, UIntToPtr(et[i].u1.s2.Id), lparam );
+ ret = lpfun( hmod, UIntToPtr(et[i].u.Id), lparam );
}
if (!ret) break;
}
@@ -269,9 +269,9 @@ BOOL WINAPI EnumResourceTypesW( HMODULE hmod, ENUMRESTYPEPROCW lpfun, LONG_PTR l
et = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(resdir + 1);
for (i = 0; i < resdir->NumberOfNamedEntries + resdir->NumberOfIdEntries; i++)
{
- if (et[i].u1.s1.NameIsString)
+ if (et[i].u.s.NameIsString)
{
- str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)resdir + et[i].u1.s1.NameOffset);
+ str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)resdir + et[i].u.s.NameOffset);
if (str->Length + 1 > len)
{
len = str->Length + 1;
@@ -284,7 +284,7 @@ BOOL WINAPI EnumResourceTypesW( HMODULE hmod, ENUMRESTYPEPROCW lpfun, LONG_PTR l
}
else
{
- ret = lpfun( hmod, UIntToPtr(et[i].u1.s2.Id), lparam );
+ ret = lpfun( hmod, UIntToPtr(et[i].u.Id), lparam );
}
if (!ret) break;
}
@@ -326,9 +326,9 @@ BOOL WINAPI EnumResourceNamesA( HMODULE hmod, LPCSTR type, ENUMRESNAMEPROCA lpfu
{
for (i = 0; i < resdir->NumberOfNamedEntries+resdir->NumberOfIdEntries; i++)
{
- if (et[i].u1.s1.NameIsString)
+ if (et[i].u.s.NameIsString)
{
- str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)basedir + et[i].u1.s1.NameOffset);
+ str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)basedir + et[i].u.s.NameOffset);
newlen = WideCharToMultiByte(CP_ACP, 0, str->NameString, str->Length, NULL, 0, NULL, NULL);
if (newlen + 1 > len)
{
@@ -346,7 +346,7 @@ BOOL WINAPI EnumResourceNamesA( HMODULE hmod, LPCSTR type, ENUMRESNAMEPROCA lpfu
}
else
{
- ret = lpfun( hmod, type, UIntToPtr(et[i].u1.s2.Id), lparam );
+ ret = lpfun( hmod, type, UIntToPtr(et[i].u.Id), lparam );
}
if (!ret) break;
}
@@ -398,9 +398,9 @@ BOOL WINAPI EnumResourceNamesW( HMODULE hmod, LPCWSTR type, ENUMRESNAMEPROCW lpf
{
for (i = 0; i < resdir->NumberOfNamedEntries+resdir->NumberOfIdEntries; i++)
{
- if (et[i].u1.s1.NameIsString)
+ if (et[i].u.s.NameIsString)
{
- str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)basedir + et[i].u1.s1.NameOffset);
+ str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const BYTE *)basedir + et[i].u.s.NameOffset);
if (str->Length + 1 > len)
{
len = str->Length + 1;
@@ -417,7 +417,7 @@ BOOL WINAPI EnumResourceNamesW( HMODULE hmod, LPCWSTR type, ENUMRESNAMEPROCW lpf
}
else
{
- ret = lpfun( hmod, type, UIntToPtr(et[i].u1.s2.Id), lparam );
+ ret = lpfun( hmod, type, UIntToPtr(et[i].u.Id), lparam );
}
if (!ret) break;
}
@@ -470,7 +470,7 @@ BOOL WINAPI EnumResourceLanguagesA( HMODULE hmod, LPCSTR type, LPCSTR name,
{
for (i = 0; i < resdir->NumberOfNamedEntries + resdir->NumberOfIdEntries; i++)
{
- ret = lpfun( hmod, type, name, et[i].u1.s2.Id, lparam );
+ ret = lpfun( hmod, type, name, et[i].u.Id, lparam );
if (!ret) break;
}
}
@@ -522,7 +522,7 @@ BOOL WINAPI EnumResourceLanguagesW( HMODULE hmod, LPCWSTR type, LPCWSTR name,
{
for (i = 0; i < resdir->NumberOfNamedEntries + resdir->NumberOfIdEntries; i++)
{
- ret = lpfun( hmod, type, name, et[i].u1.s2.Id, lparam );
+ ret = lpfun( hmod, type, name, et[i].u.Id, lparam );
if (!ret) break;
}
}
@@ -948,10 +948,10 @@ static LPWSTR resource_dup_string( const IMAGE_RESOURCE_DIRECTORY *root, const I
const IMAGE_RESOURCE_DIR_STRING_U* string;
LPWSTR s;
- if (!entry->u1.s1.NameIsString)
- return UIntToPtr(entry->u1.s2.Id);
+ if (!entry->u.s.NameIsString)
+ return UIntToPtr(entry->u.Id);
- string = (const IMAGE_RESOURCE_DIR_STRING_U*) (((const char *)root) + entry->u1.s1.NameOffset);
+ string = (const IMAGE_RESOURCE_DIR_STRING_U*) (((const char *)root) + entry->u.s.NameOffset);
s = HeapAlloc(GetProcessHeap(), 0, (string->Length + 1)*sizeof (WCHAR) );
memcpy( s, string->NameString, (string->Length + 1)*sizeof (WCHAR) );
s[string->Length] = 0;
@@ -980,7 +980,7 @@ static BOOL enumerate_mapped_resources( QUEUEDUPDATES *updates,
Type = resource_dup_string( root, e1 );
- namedir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e1->u2.s3.OffsetToDirectory);
+ namedir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e1->u2.s2.OffsetToDirectory);
for (j = 0; j < namedir->NumberOfNamedEntries + namedir->NumberOfIdEntries; j++)
{
LPWSTR Name;
@@ -989,7 +989,7 @@ static BOOL enumerate_mapped_resources( QUEUEDUPDATES *updates,
Name = resource_dup_string( root, e2 );
- langdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e2->u2.s3.OffsetToDirectory);
+ langdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e2->u2.s2.OffsetToDirectory);
for (k = 0; k < langdir->NumberOfNamedEntries + langdir->NumberOfIdEntries; k++)
{
LANGID Lang;
@@ -998,7 +998,7 @@ static BOOL enumerate_mapped_resources( QUEUEDUPDATES *updates,
e3 = (const IMAGE_RESOURCE_DIRECTORY_ENTRY*)(langdir + 1) + k;
- Lang = e3->u1.s2.Id;
+ Lang = e3->u.Id;
data = (const IMAGE_RESOURCE_DATA_ENTRY *)((const char *)root + e3->u2.OffsetToData);
@@ -1235,8 +1235,8 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
DWORD len;
root->NumberOfNamedEntries++;
- e1->u1.s1.NameIsString = 1;
- e1->u1.s1.NameOffset = si->strings_ofs;
+ e1->u.s.NameIsString = 1;
+ e1->u.s.NameOffset = si->strings_ofs;
strings = (WCHAR*) &base[si->strings_ofs];
len = lstrlenW( types->id );
@@ -1247,10 +1247,10 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
else
{
root->NumberOfIdEntries++;
- e1->u1.s2.Id = LOWORD( types->id );
+ e1->u.Id = LOWORD( types->id );
}
- e1->u2.s3.OffsetToDirectory = si->names_ofs;
- e1->u2.s3.DataIsDirectory = TRUE;
+ e1->u2.s2.OffsetToDirectory = si->names_ofs;
+ e1->u2.s2.DataIsDirectory = TRUE;
si->types_ofs += sizeof (IMAGE_RESOURCE_DIRECTORY_ENTRY);
namedir = (IMAGE_RESOURCE_DIRECTORY*) &base[si->names_ofs];
@@ -1271,8 +1271,8 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
DWORD len;
namedir->NumberOfNamedEntries++;
- e2->u1.s1.NameIsString = 1;
- e2->u1.s1.NameOffset = si->strings_ofs;
+ e2->u.s.NameIsString = 1;
+ e2->u.s.NameOffset = si->strings_ofs;
strings = (WCHAR*) &base[si->strings_ofs];
len = lstrlenW( names->id );
@@ -1283,10 +1283,10 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
else
{
namedir->NumberOfIdEntries++;
- e2->u1.s2.Id = LOWORD( names->id );
+ e2->u.Id = LOWORD( names->id );
}
- e2->u2.s3.OffsetToDirectory = si->langs_ofs;
- e2->u2.s3.DataIsDirectory = TRUE;
+ e2->u2.s2.OffsetToDirectory = si->langs_ofs;
+ e2->u2.s2.DataIsDirectory = TRUE;
si->names_ofs += sizeof (IMAGE_RESOURCE_DIRECTORY_ENTRY);
langdir = (IMAGE_RESOURCE_DIRECTORY*) &base[si->langs_ofs];
@@ -1303,7 +1303,7 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
e3 = (IMAGE_RESOURCE_DIRECTORY_ENTRY*) &base[si->langs_ofs];
memset( e3, 0, sizeof *e3 );
langdir->NumberOfIdEntries++;
- e3->u1.s2.Id = LOWORD( data->lang );
+ e3->u.Id = LOWORD( data->lang );
e3->u2.OffsetToData = si->data_entry_ofs;
si->langs_ofs += sizeof (IMAGE_RESOURCE_DIRECTORY_ENTRY);
diff --git a/dlls/ntdll/resource.c b/dlls/ntdll/resource.c
index f93a705..0d60d96 100644
--- a/dlls/ntdll/resource.c
+++ b/dlls/ntdll/resource.c
@@ -89,8 +89,8 @@ static const IMAGE_RESOURCE_DIRECTORY *find_first_entry( const IMAGE_RESOURCE_DI
for (pos = 0; pos < dir->NumberOfNamedEntries + dir->NumberOfIdEntries; pos++)
{
- if (!entry[pos].u2.s3.DataIsDirectory == !want_dir)
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
+ if (!entry[pos].u2.s2.DataIsDirectory == !want_dir)
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
}
return NULL;
}
@@ -113,17 +113,17 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_id( const IMAGE_RESOURCE_DI
while (min <= max)
{
pos = (min + max) / 2;
- if (entry[pos].u1.s2.Id == id)
+ if (entry[pos].u.Id == id)
{
- if (!entry[pos].u2.s3.DataIsDirectory == !want_dir)
+ if (!entry[pos].u2.s2.DataIsDirectory == !want_dir)
{
TRACE("root %p dir %p id %04x ret %p\n",
- root, dir, id, (const char*)root + entry[pos].u2.s3.OffsetToDirectory);
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
+ root, dir, id, (const char*)root + entry[pos].u2.s2.OffsetToDirectory);
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
}
break;
}
- if (entry[pos].u1.s2.Id > id) max = pos - 1;
+ if (entry[pos].u.Id > id) max = pos - 1;
else min = pos + 1;
}
TRACE("root %p dir %p id %04x not found\n", root, dir, id );
@@ -152,15 +152,15 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_name( const IMAGE_RESOURCE_
while (min <= max)
{
pos = (min + max) / 2;
- str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const char *)root + entry[pos].u1.s1.NameOffset);
+ str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const char *)root + entry[pos].u.s.NameOffset);
res = strncmpW( name, str->NameString, str->Length );
if (!res && namelen == str->Length)
{
- if (!entry[pos].u2.s3.DataIsDirectory == !want_dir)
+ if (!entry[pos].u2.s2.DataIsDirectory == !want_dir)
{
TRACE("root %p dir %p name %s ret %p\n",
- root, dir, debugstr_w(name), (const char*)root + entry[pos].u2.s3.OffsetToDirectory);
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
+ root, dir, debugstr_w(name), (const char*)root + entry[pos].u2.s2.OffsetToDirectory);
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
}
break;
}
diff --git a/dlls/user32/exticon.c b/dlls/user32/exticon.c
index 5682c77..5b9d681 100644
--- a/dlls/user32/exticon.c
+++ b/dlls/user32/exticon.c
@@ -120,9 +120,9 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_id( const IMAGE_RESOURCE_DI
while (min <= max)
{
pos = (min + max) / 2;
- if (entry[pos].u1.s2.Id == id)
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
- if (entry[pos].u1.s2.Id > id) max = pos - 1;
+ if (entry[pos].u.Id == id)
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
+ if (entry[pos].u.Id > id) max = pos - 1;
else min = pos + 1;
}
return NULL;
@@ -139,7 +139,7 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_default( const IMAGE_RESOURCE_
{
const IMAGE_RESOURCE_DIRECTORY_ENTRY *entry;
entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s3.OffsetToDirectory);
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s2.OffsetToDirectory);
}
/*************************************************************************
@@ -486,7 +486,7 @@ static UINT ICO_ExtractIconExW(
while(n<iconDirCount && xprdeTmp)
{
- if(xprdeTmp->u1.s2.Id == iId)
+ if(xprdeTmp->u.Id == iId)
{
nIconIndex = n;
break;
@@ -522,7 +522,7 @@ static UINT ICO_ExtractIconExW(
const IMAGE_RESOURCE_DIRECTORY *resdir;
/* go down this resource entry, name */
- resdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)rootresdir + xresent->u2.s3.OffsetToDirectory);
+ resdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)rootresdir + xresent->u2.s2.OffsetToDirectory);
/* default language (0) */
resdir = find_entry_default(resdir,rootresdir);
diff --git a/dlls/ver.dll16/version.c b/dlls/ver.dll16/version.c
index 950b650..45b9277 100644
--- a/dlls/ver.dll16/version.c
+++ b/dlls/ver.dll16/version.c
@@ -60,9 +60,9 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_id( const IMAGE_RESOURCE_DI
while (min <= max)
{
pos = (min + max) / 2;
- if (entry[pos].u1.s2.Id == id)
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
- if (entry[pos].u1.s2.Id > id) max = pos - 1;
+ if (entry[pos].u.Id == id)
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
+ if (entry[pos].u.Id > id) max = pos - 1;
else min = pos + 1;
}
return NULL;
@@ -81,7 +81,7 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_default( const IMAGE_RESOURCE_
const IMAGE_RESOURCE_DIRECTORY_ENTRY *entry;
entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s3.OffsetToDirectory);
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s2.OffsetToDirectory);
}
@@ -119,11 +119,11 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_name( const IMAGE_RESOURCE_
while (min <= max)
{
pos = (min + max) / 2;
- str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const char *)root + entry[pos].u1.s1.NameOffset);
+ str = (const IMAGE_RESOURCE_DIR_STRING_U *)((const char *)root + entry[pos].u.s.NameOffset);
res = strncmpiW( nameW, str->NameString, str->Length );
if (!res && namelen == str->Length)
{
- ret = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
+ ret = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
break;
}
if (res < 0) max = pos - 1;
diff --git a/dlls/version/version.c b/dlls/version/version.c
index bc90dcc..19836ce 100644
--- a/dlls/version/version.c
+++ b/dlls/version/version.c
@@ -84,9 +84,9 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_id( const IMAGE_RESOURCE_DI
while (min <= max)
{
pos = (min + max) / 2;
- if (entry[pos].u1.s2.Id == id)
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
- if (entry[pos].u1.s2.Id > id) max = pos - 1;
+ if (entry[pos].u.Id == id)
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
+ if (entry[pos].u.Id > id) max = pos - 1;
else min = pos + 1;
}
return NULL;
@@ -105,7 +105,7 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_default( const IMAGE_RESOURCE_
const IMAGE_RESOURCE_DIRECTORY_ENTRY *entry;
entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
- return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s3.OffsetToDirectory);
+ return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s2.OffsetToDirectory);
}
diff --git a/include/winnt.h b/include/winnt.h
index 79e91c0..bdfa464 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -3343,18 +3343,16 @@ typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
unsigned NameOffset:31;
unsigned NameIsString:1;
#endif
- } DUMMYSTRUCTNAME1;
+ } DUMMYSTRUCTNAME;
DWORD Name;
- struct {
#ifdef WORDS_BIGENDIAN
- WORD __pad;
- WORD Id;
+ WORD __pad;
+ WORD Id;
#else
- WORD Id;
- WORD __pad;
+ WORD Id;
+ WORD __pad;
#endif
- } DUMMYSTRUCTNAME2;
- } DUMMYUNIONNAME1;
+ } DUMMYUNIONNAME;
union {
DWORD OffsetToData;
struct {
@@ -3365,7 +3363,7 @@ typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
unsigned OffsetToDirectory:31;
unsigned DataIsDirectory:1;
#endif
- } DUMMYSTRUCTNAME3;
+ } DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME2;
} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY;
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
index 7af1233..4e78116 100644
--- a/libs/wine/loader.c
+++ b/libs/wine/loader.c
@@ -359,8 +359,8 @@ static void fixup_resources( IMAGE_RESOURCE_DIRECTORY *dir, BYTE *root, int delt
entry = (IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
for (i = 0; i < dir->NumberOfNamedEntries + dir->NumberOfIdEntries; i++, entry++)
{
- void *ptr = root + entry->u2.s3.OffsetToDirectory;
- if (entry->u2.s3.DataIsDirectory) fixup_resources( ptr, root, delta );
+ void *ptr = root + entry->u2.s2.OffsetToDirectory;
+ if (entry->u2.s2.DataIsDirectory) fixup_resources( ptr, root, delta );
else
{
IMAGE_RESOURCE_DATA_ENTRY *data = ptr;
diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c
index 2029ef2..c26ae69 100644
--- a/tools/winedump/pe.c
+++ b/tools/winedump/pe.c
@@ -1384,52 +1384,51 @@ static void dump_dir_resource(void)
for (i = 0; i< root->NumberOfNamedEntries + root->NumberOfIdEntries; i++)
{
e1 = (const IMAGE_RESOURCE_DIRECTORY_ENTRY*)(root + 1) + i;
- namedir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e1->u2.s3.OffsetToDirectory);
+ namedir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e1->u2.s2.OffsetToDirectory);
for (j = 0; j < namedir->NumberOfNamedEntries + namedir->NumberOfIdEntries; j++)
{
e2 = (const IMAGE_RESOURCE_DIRECTORY_ENTRY*)(namedir + 1) + j;
- langdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e2->u2.s3.OffsetToDirectory);
+ langdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e2->u2.s2.OffsetToDirectory);
for (k = 0; k < langdir->NumberOfNamedEntries + langdir->NumberOfIdEntries; k++)
{
e3 = (const IMAGE_RESOURCE_DIRECTORY_ENTRY*)(langdir + 1) + k;
printf( "\n " );
- if (e1->u1.s1.NameIsString)
+ if (e1->u.s.NameIsString)
{
- string = (const IMAGE_RESOURCE_DIR_STRING_U*)((const char *)root + e1->u1.s1.NameOffset);
+ string = (const IMAGE_RESOURCE_DIR_STRING_U*)((const char *)root + e1->u.s.NameOffset);
dump_unicode_str( string->NameString, string->Length );
}
else
{
- const char *type = get_resource_type( e1->u1.s2.Id );
+ const char *type = get_resource_type( e1->u.Id );
if (type) printf( "%s", type );
- else printf( "%04x", e1->u1.s2.Id );
+ else printf( "%04x", e1->u.Id );
}
printf( " Name=" );
- if (e2->u1.s1.NameIsString)
+ if (e2->u.s.NameIsString)
{
- string = (const IMAGE_RESOURCE_DIR_STRING_U*) ((const char *)root + e2->u1.s1.NameOffset);
+ string = (const IMAGE_RESOURCE_DIR_STRING_U*) ((const char *)root + e2->u.s.NameOffset);
dump_unicode_str( string->NameString, string->Length );
}
else
- printf( "%04x", e2->u1.s2.Id );
+ printf( "%04x", e2->u.Id );
- printf( " Language=%04x:\n", e3->u1.s2.Id );
+ printf( " Language=%04x:\n", e3->u.Id );
data = (const IMAGE_RESOURCE_DATA_ENTRY *)((const char *)root + e3->u2.OffsetToData);
- if (e1->u1.s1.NameIsString)
+ if (e1->u.s.NameIsString)
{
dump_data( RVA( data->OffsetToData, data->Size ), data->Size, " " );
}
- else switch(e1->u1.s2.Id)
+ else switch(e1->u.Id)
{
case 6:
- dump_string_data( RVA( data->OffsetToData, data->Size ), data->Size,
- e2->u1.s2.Id, " " );
+ dump_string_data( RVA( data->OffsetToData, data->Size ), data->Size, e2->u.Id, " " );
break;
case 11:
dump_msgtable_data( RVA( data->OffsetToData, data->Size ), data->Size,
- e2->u1.s2.Id, " " );
+ e2->u.Id, " " );
break;
default:
dump_data( RVA( data->OffsetToData, data->Size ), data->Size, " " );
--
1.8.2.1
More information about the wine-patches
mailing list