From 35b7846c935680dc2a3530286db23856688fcc7a Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sun, 30 Aug 2026 07:45:17 +0300
Subject: [PATCH 38/38] gtk4: Fix failed asserts when tileset does not have all
 buildings

See RM #2188

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/gui-gtk-4.0/citydlg.c | 4 +++-
 client/gui-gtk-4.0/wldlg.c   | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/client/gui-gtk-4.0/citydlg.c b/client/gui-gtk-4.0/citydlg.c
index e1ec4737ae..b211758557 100644
--- a/client/gui-gtk-4.0/citydlg.c
+++ b/client/gui-gtk-4.0/citydlg.c
@@ -2169,7 +2169,9 @@ static void city_dialog_update_building(struct city_dialog *pdialog)
         gtk_list_store_set(store, &iter, 0, pix,
                            1, name, 3, useless,
                            2, (gint)cid_encode(items[item].item), -1);
-        g_object_unref(G_OBJECT(pix));
+        if (pix != NULL) {
+          g_object_unref(G_OBJECT(pix));
+        }
 
         if (are_universals_equal(target, &pcity->production)) {
           cur = actcount;
diff --git a/client/gui-gtk-4.0/wldlg.c b/client/gui-gtk-4.0/wldlg.c
index c52bac4d73..87db4d9a9d 100644
--- a/client/gui-gtk-4.0/wldlg.c
+++ b/client/gui-gtk-4.0/wldlg.c
@@ -976,7 +976,9 @@ static void cell_render_func(GtkTreeViewColumn *col, GtkCellRenderer *rend,
     }
     pix = sprite_get_pixbuf(sprite);
     g_object_set(rend, "pixbuf", pix, NULL);
-    g_object_unref(G_OBJECT(pix));
+    if (pix != NULL) {
+      g_object_unref(G_OBJECT(pix));
+    }
     if (VUT_UTYPE == target.kind) {
       free_sprite(sprite);
     }
-- 
2.53.0

