[gobject-introspection] typelib: Fix invalid alignment assumptions



commit 9e56835f5ebb601aa0cb22130555a8a4ef15b11b
Author: Thorsten Glaser <tg debian org>
Date:   Wed Feb 8 09:02:37 2012 -0500

    typelib: Fix invalid alignment assumptions
    
    The current source has invalid assumptions about structure alignment
    that break on platforms like m68k where 32-bit integers are aligned to
    16-bit only. Fix this by introducing explicit structure padding for
    32-bit quantities following odd numbers of 16-bit quantities and
    structure trail padding, to make the binary representation generated
    by the compiler match the text of the specification exactly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=661839

 girepository/gitypelib-internal.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/girepository/gitypelib-internal.h b/girepository/gitypelib-internal.h
index 08fb850..ed8e679 100644
--- a/girepository/gitypelib-internal.h
+++ b/girepository/gitypelib-internal.h
@@ -282,7 +282,7 @@ typedef struct {
   guint32 sections;
 
   /* <private> */
-  guint16 padding[5];
+  guint16 padding[6];
 } Header;
 
 typedef enum {
@@ -434,6 +434,10 @@ typedef struct {
   gint8        closure;
   gint8        destroy;
 
+  /* <private> */
+  guint16      padding;
+  /* <public> */
+
   SimpleTypeBlob arg_type;
 } ArgBlob;
 
@@ -1051,6 +1055,8 @@ typedef struct {
   guint16 n_vfuncs;
   guint16 n_constants;
 
+  guint16 padding;
+
   guint32 reserved2;
   guint32 reserved3;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]