|
|
f4a044 |
From 7554822dd0b52d33ec7898e81b59e97164b00142 Mon Sep 17 00:00:00 2001
|
|
|
f4a044 |
From: Uli Schlachter <psychon@znc.in>
|
|
|
f4a044 |
Date: Sat, 21 Apr 2018 09:37:06 +0200
|
|
|
f4a044 |
Subject: [PATCH] Fix assertion failure in the freetype backend
|
|
|
f4a044 |
|
|
|
f4a044 |
Fonts are kept in a hash table, so when creating a new font, the code
|
|
|
f4a044 |
first checks the hash table for an already-existing entry and only then
|
|
|
f4a044 |
is a new instance really created. There is an assert that checks that
|
|
|
f4a044 |
the key used for the hash table lookup is the same as the instance that
|
|
|
f4a044 |
is created later has, because otherwise the hash table was checked
|
|
|
f4a044 |
incorrectly.
|
|
|
f4a044 |
|
|
|
f4a044 |
This assert failed in some conditions.
|
|
|
f4a044 |
|
|
|
f4a044 |
Fix this by fixing some places that initialised ft hash keys in a wrong
|
|
|
f4a044 |
way.
|
|
|
f4a044 |
|
|
|
f4a044 |
Patch by Behdad Esfahbod and submitted via bugzilla.
|
|
|
f4a044 |
|
|
|
f4a044 |
Source: https://bugs.freedesktop.org/show_bug.cgi?id=105746#c4
|
|
|
f4a044 |
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=105746
|
|
|
f4a044 |
Signed-off-by: Uli Schlachter <psychon@znc.in>
|
|
|
f4a044 |
---
|
|
|
f4a044 |
src/cairo-ft-font.c | 4 ++--
|
|
|
f4a044 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
f4a044 |
|
|
|
f4a044 |
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
|
|
|
f4a044 |
index 79aef78f5b0d..9b10708988d7 100644
|
|
|
f4a044 |
--- a/src/cairo-ft-font.c
|
|
|
f4a044 |
+++ b/src/cairo-ft-font.c
|
|
|
f4a044 |
@@ -445,7 +445,7 @@ _cairo_ft_unscaled_font_init (cairo_ft_unscaled_font_t *unscaled,
|
|
|
f4a044 |
|
|
|
f4a044 |
if (from_face) {
|
|
|
f4a044 |
unscaled->from_face = TRUE;
|
|
|
f4a044 |
- _cairo_ft_unscaled_font_init_key (unscaled, TRUE, NULL, face->face_index, face);
|
|
|
f4a044 |
+ _cairo_ft_unscaled_font_init_key (unscaled, TRUE, NULL, id, face);
|
|
|
f4a044 |
|
|
|
f4a044 |
|
|
|
f4a044 |
unscaled->have_color = FT_HAS_COLOR (face) != 0;
|
|
|
f4a044 |
@@ -640,7 +640,7 @@ static cairo_status_t
|
|
|
f4a044 |
_cairo_ft_unscaled_font_create_from_face (FT_Face face,
|
|
|
f4a044 |
cairo_ft_unscaled_font_t **out)
|
|
|
f4a044 |
{
|
|
|
f4a044 |
- return _cairo_ft_unscaled_font_create_internal (TRUE, NULL, 0, face, out);
|
|
|
f4a044 |
+ return _cairo_ft_unscaled_font_create_internal (TRUE, NULL, face->face_index, face, out);
|
|
|
f4a044 |
}
|
|
|
f4a044 |
|
|
|
f4a044 |
static cairo_bool_t
|
|
|
f4a044 |
--
|
|
|
f4a044 |
2.17.0
|
|
|
f4a044 |
|