From dbab69c453fbba563d126efcd23aea4d04f32327 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 1 Aug 2022 20:28:46 +0000 Subject: [PATCH] snapshot: Don't critical on dispose When there's remaining state that draws nothing, it returns no rendernode. So do a NULL-check before unreffing it. --- gtk/gtksnapshot.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gtk/gtksnapshot.c b/gtk/gtksnapshot.c index 1896a207de..afa27b45f1 100644 --- a/gtk/gtksnapshot.c +++ b/gtk/gtksnapshot.c @@ -163,7 +163,10 @@ gtk_snapshot_dispose (GObject *object) GtkSnapshot *snapshot = GTK_SNAPSHOT (object); if (!gtk_snapshot_states_is_empty (&snapshot->state_stack)) - gsk_render_node_unref (gtk_snapshot_to_node (snapshot)); + { + GskRenderNode *node = gtk_snapshot_to_node (snapshot); + g_clear_pointer (&node, gsk_render_node_unref); + } g_assert (gtk_snapshot_states_is_empty (&snapshot->state_stack)); g_assert (gtk_snapshot_nodes_is_empty (&snapshot->nodes));