diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index 3c3a723b13..bc072dc9cb 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,9 @@ +Mon Aug 18 10:25:29 2003 Owen Taylor + + * gdk-pixdata.c (gdk_pixdata_to_csource): Add the correct + alignment magic for Sun compiler and for GCC to get + the strings aligned. (Patch from Brian Cameron, #117217) + 2003-08-14 Matthias Clasen * gdk-pixdata.c (gdk_pixdata_to_csource): Improve doc comment diff --git a/gdk-pixbuf/gdk-pixdata.c b/gdk-pixbuf/gdk-pixdata.c index f8730c3015..445e7adf7f 100644 --- a/gdk-pixbuf/gdk-pixdata.c +++ b/gdk-pixbuf/gdk-pixdata.c @@ -727,10 +727,22 @@ gdk_pixdata_to_csource (GdkPixdata *pixdata, img_buffer = stream; img_buffer_end = stream + stream_length; + APPEND (gstring, "#ifdef __SUNPRO_C\n"); + APPEND (gstring, "#pragma align 4 (%s)\n", name); + APPEND (gstring, "#endif\n"); + + APPEND (gstring, "#ifdef __GNUC__\n"); + APPEND (gstring, "%s%s%s %s[] __attribute__ ((__aligned__ (4))) = \n", + cdata.static_prefix, cdata.const_prefix, + cdata.dump_gtypes ? "guint8" : "unsigned char", + name); + APPEND (gstring, "#else\n"); APPEND (gstring, "%s%s%s %s[] = \n", cdata.static_prefix, cdata.const_prefix, cdata.dump_gtypes ? "guint8" : "unsigned char", name); + APPEND (gstring, "#endif\n"); + APPEND (gstring, "{ \"\"\n /* Pixbuf magic (0x%x) */\n \"", GDK_PIXBUF_MAGIC_NUMBER); cdata.pos = 3;