From 717f0e0a40b8d947dad3fb9f25c3aad1619aae87 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sun, 21 Oct 2018 13:36:46 +1030 Subject: [PATCH] type1: fallback if the font matrix is not a uniform scale https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1790242 --- src/cairo-type1-subset.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c index 5f0745688..754c32395 100644 --- a/src/cairo-type1-subset.c +++ b/src/cairo-type1-subset.c @@ -388,6 +388,11 @@ cairo_type1_font_subset_get_bbox (cairo_type1_font_subset_t *font) /* Freetype uses 1/yy to get units per EM */ font->base.units_per_em = 1.0/yy; + /* If the FontMatrix is not a uniform scale the metrics we extract + * from the font won't match what FreeType returns */ + if (xx != yy || yx != 0.0 || xy != 0.0) + return CAIRO_INT_STATUS_UNSUPPORTED; + font->base.x_min = x_min / font->base.units_per_em; font->base.y_min = y_min / font->base.units_per_em; font->base.x_max = x_max / font->base.units_per_em;