summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-11-28 21:48:15 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-11-28 21:48:15 +0000
commit4827da2e70b12b7316874ee947745b1247239880 (patch)
treec8672e12d9629d7075d01a9d7296b1317cf0914d
parentc23d8ef078be5c8279bc3a6addf46f8107c6e038 (diff)
downloadpango-4827da2e70b12b7316874ee947745b1247239880.tar.gz
Revert two of the cast changes from last commit, to make sure the
2006-11-28 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-font.c (_pango_cairo_font_install), (_pango_cairo_font_get_font_face), (_pango_cairo_font_get_scaled_font): * pango/pangocairo-private.h: * pango/pangocairo-render.c (pango_cairo_renderer_draw_glyphs): Revert two of the cast changes from last commit, to make sure the test-pangocairo-fontmap-mismatch test doesn't crash.
-rw-r--r--ChangeLog10
-rw-r--r--pango/pangocairo-font.c15
-rw-r--r--pango/pangocairo-private.h1
-rw-r--r--pango/pangocairo-render.c2
4 files changed, 24 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index ca19b966..12ce4275 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2006-11-28 Behdad Esfahbod <behdad@gnome.org>
+ * pango/pangocairo-font.c (_pango_cairo_font_install),
+ (_pango_cairo_font_get_font_face),
+ (_pango_cairo_font_get_scaled_font):
+ * pango/pangocairo-private.h:
+ * pango/pangocairo-render.c (pango_cairo_renderer_draw_glyphs):
+ Revert two of the cast changes from last commit, to make sure the
+ test-pangocairo-fontmap-mismatch test doesn't crash.
+
+2006-11-28 Behdad Esfahbod <behdad@gnome.org>
+
* pango/pangocairo-fcfont.c (pango_cairo_fc_font_get_font_face),
(pango_cairo_fc_font_install), (pango_cairo_fc_font_finalize),
(pango_cairo_fc_font_get_metrics), (pango_cairo_fc_font_shutdown),
diff --git a/pango/pangocairo-font.c b/pango/pangocairo-font.c
index eacfc34d..768bf6b7 100644
--- a/pango/pangocairo-font.c
+++ b/pango/pangocairo-font.c
@@ -72,7 +72,7 @@ gboolean
_pango_cairo_font_install (PangoCairoFont *font,
cairo_t *cr)
{
- if (G_UNLIKELY (!font))
+ if (G_UNLIKELY (!PANGO_IS_CAIRO_FONT (font)))
{
if (!_pango_cairo_warning_history.font_install)
{
@@ -89,7 +89,8 @@ _pango_cairo_font_install (PangoCairoFont *font,
cairo_font_face_t *
_pango_cairo_font_get_font_face (PangoCairoFont *font)
{
- g_return_val_if_fail (font, NULL);
+ g_return_val_if_fail (PANGO_IS_CAIRO_FONT (font), NULL);
+ /* this function will be removed. don't bother with warning history here */
return (* PANGO_CAIRO_FONT_GET_IFACE (font)->get_font_face) (font);
}
@@ -97,7 +98,15 @@ _pango_cairo_font_get_font_face (PangoCairoFont *font)
cairo_scaled_font_t *
_pango_cairo_font_get_scaled_font (PangoCairoFont *font)
{
- g_return_val_if_fail (font, NULL);
+ if (G_UNLIKELY (!PANGO_IS_CAIRO_FONT (font)))
+ {
+ if (!_pango_cairo_warning_history.font_get_scaled_font)
+ {
+ _pango_cairo_warning_history.font_get_scaled_font = TRUE;
+ g_warning ("_pango_cairo_font_get_scaled_font called with bad font, expect ugly output");
+ }
+ return NULL;
+ }
return (* PANGO_CAIRO_FONT_GET_IFACE (font)->get_scaled_font) (font);
}
diff --git a/pango/pangocairo-private.h b/pango/pangocairo-private.h
index 104bac29..7ccd1857 100644
--- a/pango/pangocairo-private.h
+++ b/pango/pangocairo-private.h
@@ -108,6 +108,7 @@ typedef struct _PangoCairoWarningHistory PangoCairoWarningHistory;
struct _PangoCairoWarningHistory {
guint font_install : 1;
+ guint font_get_scaled_font : 1;
};
extern PangoCairoWarningHistory _pango_cairo_warning_history;
diff --git a/pango/pangocairo-render.c b/pango/pangocairo-render.c
index 26be779c..45ff427e 100644
--- a/pango/pangocairo-render.c
+++ b/pango/pangocairo-render.c
@@ -177,7 +177,7 @@ pango_cairo_renderer_draw_glyphs (PangoRenderer *renderer,
if (!crenderer->do_path)
set_color (crenderer, PANGO_RENDER_PART_FOREGROUND);
- if (!_pango_cairo_font_install (PANGO_CAIRO_FONT (font), crenderer->cr))
+ if (!_pango_cairo_font_install ((PangoCairoFont *) (font), crenderer->cr))
{
for (i = 0; i < glyphs->num_glyphs; i++)
{