diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-06-18 16:33:12 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2009-06-19 00:28:59 +0100 |
commit | 3063f0f44c61869bc6bb07d46bf881f1558ac015 (patch) | |
tree | 635dd9120e4a23780c720ceb434dd24ba0967f15 /src/cairo-scaled-font-subsets.c | |
parent | 6e78c94615e407d72d4778d5558dc218e0402cbc (diff) | |
download | cairo-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.c | 6 |
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 |