summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Fritzsch <Patrick.Fritzsch@cib.de>2015-11-13 21:16:22 +1030
committerAdrian Johnson <ajohnson@redneon.com>2015-11-13 21:27:34 +1030
commitad99e1b9d80a9dc8d185f38347d64e1db762523c (patch)
tree0b29d7b470b57ddf920f70e1c454f04ee61273f3
parent98d01cd119eaa7d50cf0ec6c6cc32ee170397ad5 (diff)
win32: check if GetTextMetrics failed
http://lists.cairographics.org/archives/cairo/2015-November/026544.html
-rw-r--r--src/win32/cairo-win32-font.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/win32/cairo-win32-font.c b/src/win32/cairo-win32-font.c
index 1599b0751..f5bd22c35 100644
--- a/src/win32/cairo-win32-font.c
+++ b/src/win32/cairo-win32-font.c
@@ -889,7 +889,7 @@ _cairo_win32_scaled_font_set_metrics (cairo_win32_scaled_font_t *scaled_font)
cairo_status_t status;
cairo_font_extents_t extents;
- TEXTMETRIC metrics;
+ TEXTMETRIC metrics = {0};
HDC hdc;
hdc = _get_global_font_dc ();
@@ -902,8 +902,14 @@ _cairo_win32_scaled_font_set_metrics (cairo_win32_scaled_font_t *scaled_font)
status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc);
if (status)
return status;
- GetTextMetrics (hdc, &metrics);
+
+ if (!GetTextMetrics (hdc, &metrics)) {
+ status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_set_metrics:GetTextMetrics");
+ }
+
cairo_win32_scaled_font_done_font (&scaled_font->base);
+ if (status)
+ return status;
extents.ascent = metrics.tmAscent / scaled_font->logical_scale;
extents.descent = metrics.tmDescent / scaled_font->logical_scale;