Revert two of the cast changes from last commit, to make sure the
authorBehdad Esfahbod <behdad@gnome.org>
Tue, 28 Nov 2006 21:47:51 +0000 (21:47 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Tue, 28 Nov 2006 21:47:51 +0000 (21:47 +0000)
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.

ChangeLog
pango/pangocairo-font.c
pango/pangocairo-private.h
pango/pangocairo-render.c

index 4e700fb..6121d92 100644 (file)
--- 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),
index 34b2b63..b72b6e2 100644 (file)
@@ -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);
 }
index 104bac2..7ccd185 100644 (file)
@@ -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;
index 26be779..45ff427 100644 (file)
@@ -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++)
        {