From 6e629c0f1045bde6c7efdfc40e5b3a3383e433df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 4 Aug 2021 19:46:34 +0200 Subject: [PATCH] st/icon: Only get resource-scale after peeking theme node If an actor is not on any stage view, then it doesn't have a valid resource scale, which will hit an assert later. When that is the case (for example when running headless), we expect that there is no valid theme node (yet) either, so simply moving the clutter_actor_get_resource_scale() call after peeking at the theme node is enough to avoid the crash. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4522 Part-of: --- src/st/st-icon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/st/st-icon.c b/src/st/st-icon.c index 49cdfec48..71ba1b6b3 100644 --- a/src/st/st-icon.c +++ b/src/st/st-icon.c @@ -487,8 +487,6 @@ st_icon_update (StIcon *icon) return; } - resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (icon)); - theme_node = st_widget_peek_theme_node (ST_WIDGET (icon)); if (theme_node == NULL) return; @@ -496,6 +494,8 @@ st_icon_update (StIcon *icon) if (priv->icon_size <= 0) return; + resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (icon)); + stage = clutter_actor_get_stage (CLUTTER_ACTOR (icon)); context = st_theme_context_get_for_stage (CLUTTER_STAGE (stage)); g_object_get (context, "scale-factor", &paint_scale, NULL);