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),
_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)
{
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);
}
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);
}
struct _PangoCairoWarningHistory {
guint font_install : 1;
+ guint font_get_scaled_font : 1;
};
extern PangoCairoWarningHistory _pango_cairo_warning_history;
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++)
{