summaryrefslogtreecommitdiff
path: root/src/cairo-scaled-font.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-06-07 15:14:31 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-06-07 15:15:55 +0100
commit37532b47c0ef6528fb6696fe97be337d9ad0a900 (patch)
tree4a71476ac15a0426b6f28aa6abefe2d1be7e29c4 /src/cairo-scaled-font.c
parent2f1d6b27e8b78c77346a5b603114b54400e57d83 (diff)
downloadcairo-37532b47c0ef6528fb6696fe97be337d9ad0a900.tar.gz
scaled-font: Take lock around disposing of an empty page upon alloc failure
Spotted by code inspection whilst looking at #50705 References: https://bugs.freedesktop.org/show_bug.cgi?id=50705 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-scaled-font.c')
-rw-r--r--src/cairo-scaled-font.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
index 7ea3a2127..fe22f54c3 100644
--- a/src/cairo-scaled-font.c
+++ b/src/cairo-scaled-font.c
@@ -2870,8 +2870,10 @@ _cairo_scaled_font_free_last_glyph (cairo_scaled_font_t *scaled_font,
_cairo_scaled_glyph_fini (scaled_font, scaled_glyph);
if (--page->num_glyphs == 0) {
+ CAIRO_MUTEX_LOCK (_cairo_scaled_glyph_page_cache_mutex);
_cairo_cache_remove (&cairo_scaled_glyph_page_cache,
&page->cache_entry);
+ CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
}
}