From 8e8e1b7614699daec3b0e189c9814615112a08c7 Mon Sep 17 00:00:00 2001 From: Raphael Robatsch Date: Thu, 28 Oct 2021 17:22:40 +0200 Subject: [PATCH] fix pango crash --- src/bar.cpp | 7 ++++++- src/common.hpp | 1 + src/main.cpp | 1 - 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bar.cpp b/src/bar.cpp index 6e559c5..db34426 100644 --- a/src/bar.cpp +++ b/src/bar.cpp @@ -31,10 +31,15 @@ struct Font { static Font getFont() { auto fontMap = pango_cairo_font_map_get_default(); + if (!fontMap) die("pango_cairo_font_map_get_default"); auto fontDesc = pango_font_description_from_string(font); + if (!fontDesc) die("pango_font_description_from_string"); auto tempContext = pango_font_map_create_context(fontMap); + if (!tempContext) die("pango_font_map_create_context"); auto font = pango_font_map_load_font(fontMap, tempContext, fontDesc); + if (!font) die("pango_font_map_load_font"); auto metrics = pango_font_get_metrics(font, pango_language_get_default()); + if (!metrics) die("pango_font_get_metrics"); auto res = Font {}; res.description = fontDesc; @@ -43,7 +48,6 @@ static Font getFont() pango_font_metrics_unref(metrics); g_object_unref(font); g_object_unref(tempContext); - g_object_unref(fontMap); return res; } static Font barfont = getFont(); @@ -68,6 +72,7 @@ Bar::Bar(Monitor *mon) { _mon = mon; _pangoContext.reset(pango_font_map_create_context(pango_cairo_font_map_get_default())); + if (!_pangoContext) die("pango_font_map_create_context"); for (auto i=0u; i diff --git a/src/main.cpp b/src/main.cpp index 9b4126d..bb7fafc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -55,7 +55,6 @@ static void cleanup(); static void requireGlobal(const void *p, const char *name); static void waylandFlush(); [[noreturn]] static void diesys(const char *why); -[[noreturn]] static void die(const char *why); wl_display *display; wl_compositor *compositor;