(PRODUCE_GLYPHS): Set inhibit_free_realized_faces
authorRichard M. Stallman <rms@gnu.org>
Thu, 29 Aug 2002 14:41:28 +0000 (14:41 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 29 Aug 2002 14:41:28 +0000 (14:41 +0000)
when iterator is adding glyphs to a glyph matrix.

src/dispextern.h

index 682bf0b..5d82f6f 100644 (file)
@@ -1852,10 +1852,16 @@ struct it
 /* Call produce_glyphs or produce_glyphs_hook, if set.  Shortcut to
    avoid the function call overhead.  */
 
-#define PRODUCE_GLYPHS(IT)                     \
-     (rif                                      \
-      ? rif->produce_glyphs ((IT))             \
-      : produce_glyphs ((IT)))
+#define PRODUCE_GLYPHS(IT)                     \
+     do {                                      \
+       extern int inhibit_free_realized_faces; \
+       if (rif != NULL)                                \
+        rif->produce_glyphs ((IT));            \
+       else                                    \
+        produce_glyphs ((IT));                 \
+       if ((IT)->glyph_row != NULL)            \
+        inhibit_free_realized_faces = 1;       \
+     } while (0)
 
 /* Bit-flags indicating what operation move_it_to should perform.  */