diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pangoft2-render.c | 6 | ||||
-rw-r--r-- | pango/pangoft2.c | 17 |
2 files changed, 17 insertions, 6 deletions
diff --git a/pango/pangoft2-render.c b/pango/pangoft2-render.c index 42923f49..60cf4329 100644 --- a/pango/pangoft2-render.c +++ b/pango/pangoft2-render.c @@ -210,7 +210,7 @@ pango_ft2_font_render_glyph (PangoFont *font, return box; } - face = pango_ft2_font_get_face (font); + face = pango_fc_font_lock_face (PANGO_FC_FONT (font)); if (face) { @@ -231,6 +231,8 @@ pango_ft2_font_render_glyph (PangoFont *font, rendered->bitmap_left = face->glyph->bitmap_left; rendered->bitmap_top = face->glyph->bitmap_top; + pango_fc_font_unlock_face (PANGO_FC_FONT (font)); + if (G_UNLIKELY (!rendered->bitmap.buffer)) { g_slice_free (PangoFT2RenderedGlyph, rendered); return NULL; @@ -240,6 +242,8 @@ pango_ft2_font_render_glyph (PangoFont *font, } else { + pango_fc_font_unlock_face (PANGO_FC_FONT (font)); + generic_box: return pango_ft2_font_render_box_glyph (PANGO_UNKNOWN_GLYPH_WIDTH, PANGO_UNKNOWN_GLYPH_HEIGHT, diff --git a/pango/pangoft2.c b/pango/pangoft2.c index dc6db5da..cbe1d210 100644 --- a/pango/pangoft2.c +++ b/pango/pangoft2.c @@ -424,12 +424,13 @@ pango_ft2_font_get_kerning (PangoFont *font, static FT_Face pango_ft2_font_real_lock_face (PangoFcFont *font) { - return pango_ft2_font_get_face ((PangoFont *)font); + return pango_fc_font_lock_face (font); } static void -pango_ft2_font_real_unlock_face (PangoFcFont *font G_GNUC_UNUSED) +pango_ft2_font_real_unlock_face (PangoFcFont *font) { + pango_fc_font_unlock_face (font); } static gboolean @@ -499,12 +500,18 @@ pango_ft2_font_get_coverage (PangoFont *font, PangoGlyph pango_ft2_get_unknown_glyph (PangoFont *font) { - FT_Face face = pango_ft2_font_get_face (font); + PangoFcFont *fc_font = PANGO_FC_FONT (font); + FT_Face face; + PangoGlyph glyph; + + face = pango_fc_font_lock_face (fc_font); if (face && FT_IS_SFNT (face)) /* TrueType fonts have an 'unknown glyph' box on glyph index 0 */ - return 0; + glyph = 0; else - return PANGO_GLYPH_EMPTY; + glyph = PANGO_GLYPH_EMPTY; + pango_fc_font_unlock_face (fc_font); + return glyph; } typedef struct |