gvariant: Add portable alignment fix for GVariant suffix

We want to keep the suffix aligned to 8 bytes on 32-bit too. This makes
sure we do that in a way that is portable across our supported compilers.

Fixes: #3486
This commit is contained in:
Christian Hergert 2024-09-30 11:37:44 -07:00 committed by Philip Withnall
parent e4f5c2e9c5
commit 4db378a739

View File

@ -76,13 +76,12 @@ struct _GVariant
gatomicrefcount ref_count;
gsize depth;
#if g_macro__has_attribute(aligned)
guint8 suffix[] __attribute__((aligned(8)));
#elif defined _MSC_VER
__declspec(align (8)) guint8 suffix[];
#else
guint8 suffix[];
#if GLIB_SIZEOF_VOID_P == 4
/* Keep suffix aligned to 8 bytes */
guint _padding;
#endif
guint8 suffix[];
};
/* Ensure our suffix data aligns to largest guaranteed offset