[PATCH] include: pack NE_NAMEINFO and NE_TYPEINFO pack(1)

Marcus Meissner meissner at suse.de
Thu May 27 08:40:48 CDT 2010


Hi,

make check fails in icon loading (via comdlg32 filedlg in user32)
as the size of NE_NAMEINFO and NE_TYPEINFO differs between
32bit and 64bit.

It still is not fully correct though, but the test succeeds.

32bit:
fixme:icon:ICO_ExtractIconExW sizeof NE_TYPEINFO is is 8
fixme:icon:ICO_ExtractIconExW sizeof NE_NAMEINFO is is 12

64bit:
fixme:icon:ICO_ExtractIconExW sizeof NE_TYPEINFO is is 12
fixme:icon:ICO_ExtractIconExW sizeof NE_NAMEINFO is is 12

Does the FARPROC16 need to be aligned to 4 byte?

Ciao, Marcus
---
 include/wine/winbase16.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/wine/winbase16.h b/include/wine/winbase16.h
index aaa3336..a095556 100644
--- a/include/wine/winbase16.h
+++ b/include/wine/winbase16.h
@@ -278,6 +278,7 @@ typedef struct {
 #define NE_SEGFLAGS_DISCARDABLE 0x1000
 #define NE_SEGFLAGS_32BIT       0x2000
 
+#include <pshpack1.h>
 /*
  * Resource table structures.
  */
@@ -300,6 +301,7 @@ typedef struct
      * Name info array.
      */
 } NE_TYPEINFO;
+#include <poppack.h>
 
 #define NE_RSCTYPE_CURSOR             0x8001
 #define NE_RSCTYPE_BITMAP             0x8002
-- 
1.6.4.2



More information about the wine-patches mailing list