summaryrefslogtreecommitdiff
path: root/src/cairo-scaled-font-subsets.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-06-18 16:33:12 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2009-06-19 00:28:59 +0100
commit3063f0f44c61869bc6bb07d46bf881f1558ac015 (patch)
tree635dd9120e4a23780c720ceb434dd24ba0967f15 /src/cairo-scaled-font-subsets.c
parent6e78c94615e407d72d4778d5558dc218e0402cbc (diff)
downloadcairo-3063f0f44c61869bc6bb07d46bf881f1558ac015.tar.gz
[scaled-font-subset] Check for matching font-face implementors
Catch toy and user fonts which may have different font-faces for their implementation than the original ones they were created with.
Diffstat (limited to 'src/cairo-scaled-font-subsets.c')
-rw-r--r--src/cairo-scaled-font-subsets.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c
index 02b32aa7f..64c9d9aad 100644
--- a/src/cairo-scaled-font-subsets.c
+++ b/src/cairo-scaled-font-subsets.c
@@ -230,11 +230,13 @@ _cairo_sub_fonts_equal (const void *key_a, const void *key_b)
{
const cairo_sub_font_t *sub_font_a = key_a;
const cairo_sub_font_t *sub_font_b = key_b;
+ cairo_scaled_font_t *a = sub_font_a->scaled_font;
+ cairo_scaled_font_t *b = sub_font_b->scaled_font;
if (sub_font_a->is_scaled)
- return sub_font_a->scaled_font == sub_font_b->scaled_font;
+ return a == b;
else
- return sub_font_a->scaled_font->font_face == sub_font_b->scaled_font->font_face;
+ return a->font_face == b->font_face || a->original_font_face == b->original_font_face;
}
static void