[HB] Fix buffer sizing issue with mingw gcc
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 13 Aug 2009 09:20:46 +0000 (05:20 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 2 Nov 2009 19:40:42 +0000 (14:40 -0500)
Bit field packing is a delicate field.  Issue reported in comment 3 here:
http://bugzilla.gnome.org/show_bug.cgi?id=591511

src/hb-buffer-private.h

index 2d2ea06..0456125 100644 (file)
@@ -50,15 +50,15 @@ typedef struct _hb_internal_glyph_position_t {
   hb_position_t  y_pos;
   hb_position_t  x_advance;
   hb_position_t  y_advance;
-  hb_bool_t      new_advance :1;       /* if set, the advance width values are
-                                          absolute, i.e., they won't be
-                                          added to the original glyph's value
-                                          but rather replace them */
+  unsigned short new_advance :1;       /* if set, the advance width values are
+                                        * absolute, i.e., they won't be
+                                        * added to the original glyph's value
+                                        * but rather replace them */
   unsigned short back : 15;            /* number of glyphs to go back
-                                          for drawing current glyph */
+                                        * for drawing current glyph */
   short          cursive_chain : 16;   /* character to which this connects,
-                                          may be positive or negative; used
-                                          only internally */
+                                        * may be positive or negative; used
+                                        * only internally */
 } hb_internal_glyph_position_t;
 
 ASSERT_STATIC (sizeof (hb_glyph_info_t) == sizeof (hb_internal_glyph_info_t));