summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
Diffstat (limited to 'pango')
-rw-r--r--pango/pangoft2-render.c6
-rw-r--r--pango/pangoft2.c17
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