From 166d718099fc8898895d4ad2839d5fb9865a87a5 Mon Sep 17 00:00:00 2001 From: Luca Bacci Date: Sun, 4 Sep 2022 15:16:21 +0200 Subject: [PATCH] Check for scaled_font::cache_frozen in glyph_page_can_remove() With modifications kindly suggested by Uli Schlachter Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/587 --- src/cairo-scaled-font.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index 5fe81110f..7d556036e 100755 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -2703,7 +2703,16 @@ _cairo_scaled_glyph_page_can_remove (const void *closure) cairo_scaled_font_t *scaled_font; scaled_font = page->scaled_font; - return CAIRO_MUTEX_TRY_LOCK (scaled_font->mutex); + + if (!CAIRO_MUTEX_TRY_LOCK (scaled_font->mutex)) + return FALSE; + + if (scaled_font->cache_frozen != 0) { + CAIRO_MUTEX_UNLOCK (scaled_font->mutex); + return FALSE; + } + + return TRUE; } static cairo_status_t