summaryrefslogtreecommitdiff
path: root/pango/shape.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-01-31 00:44:04 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-01-31 00:44:04 +0000
commit4c64086f6cee60fb5275b8fabf2a465212ab8420 (patch)
treed8bcf6e7ba91e91a8c8e7009a828c0c53d91cfc5 /pango/shape.c
parent71f0113fe55447c026fb00115c552a8762bf9e91 (diff)
downloadpango-4c64086f6cee60fb5275b8fabf2a465212ab8420.tar.gz
Improve error handling in high-frequency functions: Only warn once.
2006-01-30 Behdad Esfahbod <behdad@gnome.org> * pango/shape.c (pango_shape): * pango/fonts.c (pango_font_get_glyph_extents): * pango/pangocairo-font.c (_pango_cairo_font_install): Improve error handling in high-frequency functions: Only warn once. * pango-impl-utils.h, pangoutils.h: * pangocairo-private.h, pangocairo-font.c: Add machinery for above: _pango_warning_history and _pango_cairo_warning_history.
Diffstat (limited to 'pango/shape.c')
-rw-r--r--pango/shape.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/pango/shape.c b/pango/shape.c
index 3020007a..37fc34d2 100644
--- a/pango/shape.c
+++ b/pango/shape.c
@@ -20,8 +20,10 @@
*/
#include <config.h>
-#include <pango/pango-glyph.h>
-#include <pango/pango-engine-private.h>
+
+#include "pango-impl-utils.h"
+#include "pango-glyph.h"
+#include "pango-engine-private.h"
/**
* pango_shape:
@@ -82,20 +84,15 @@ pango_shape (const gchar *text,
}
else
{
- static struct {
- guint font : 1;
- guint shape_engine : 1;
- } warned = { FALSE, FALSE };
-
- if (!analysis->shape_engine && !warned.shape_engine)
+ if (!analysis->shape_engine && !_pango_warning_history.shape_shape_engine)
{
- g_critical ("pango_shape called with analysis->shape_engine == NULL");
- warned.font = TRUE;
+ _pango_warning_history.shape_font = TRUE;
+ g_critical ("pango_shape called with analysis->shape_engine == NULL, expect ugly output");
}
- if (!analysis->font && !warned.font)
+ if (!analysis->font && !_pango_warning_history.shape_font)
{
- g_critical ("pango_shape called with analysis->font == NULL");
- warned.font = TRUE;
+ _pango_warning_history.shape_font = TRUE;
+ g_critical ("pango_shape called with analysis->font == NULL, expect ugly output");
}
glyphs->num_glyphs = 0;