From b609db5c3e5bdb946a7fab5398e9653200688d74 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sun, 30 Aug 2026 07:45:17 +0300
Subject: [PATCH 64/64] gtk4(x): 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 +++-
 client/gui-gtk-5.0/wldlg.c   | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/client/gui-gtk-4.0/citydlg.c b/client/gui-gtk-4.0/citydlg.c
index 29298ccf9d..85f53984c3 100644
--- a/client/gui-gtk-4.0/citydlg.c
+++ b/client/gui-gtk-4.0/citydlg.c
@@ -2186,7 +2186,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);
     }
diff --git a/client/gui-gtk-5.0/wldlg.c b/client/gui-gtk-5.0/wldlg.c
index cbca666ba7..7c339d5793 100644
--- a/client/gui-gtk-5.0/wldlg.c
+++ b/client/gui-gtk-5.0/wldlg.c
@@ -1072,7 +1072,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

