Bug#870749: glade FTBFS with glib 2.53.4

Adrian Bunk bunk at debian.org
Fri Aug 4 18:34:47 UTC 2017


Source: glade
Version: 3.20.0-2
Severity: serious
Tags: patch buster sid

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/glade.html

...
glade-signal-model.c:68:1: error: conflicting types for 'g_ptr_array_find'
 g_ptr_array_find (GPtrArray *array, gpointer data)
 ^~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:31:0,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from glade-signal-model.h:23,
                 from glade-signal-model.c:23:
/usr/include/glib-2.0/glib/garray.h:186:12: note: previous declaration of 'g_ptr_array_find' was here
 gboolean   g_ptr_array_find               (GPtrArray        *haystack,
            ^~~~~~~~~~~~~~~~
Makefile:1210: recipe for target 'libgladeui_2_la-glade-signal-model.lo' failed
make[4]: *** [libgladeui_2_la-glade-signal-model.lo] Error 1


The upstream fix is attached.
-------------- next part --------------
>From 8a73d114ca5b4d37a770d0b6b69dd17a366dbcf4 Mon Sep 17 00:00:00 2001
From: Jonh Wendell <jonh.wendell at redhat.com>
Date: Thu, 4 May 2017 11:05:48 -0300
Subject: Use g_ptr_array_find() from GLib

https://bugzilla.gnome.org/show_bug.cgi?id=782161
---
 configure.ac                 |  2 ++
 gladeui/glade-signal-model.c | 30 ++++++++++--------------------
 2 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/configure.ac b/configure.ac
index ac59f096..db7487ef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -146,8 +146,10 @@ dnl ================================================================
 dnl Check for gtk+
 dnl ================================================================
 GTK_REQUIRED=3.20.0
+GLIB_REQUIRED=2.53.2
 PKG_CHECK_MODULES([GTK],[
   gtk+-3.0 >= $GTK_REQUIRED
+  glib-2.0 >= $GLIB_REQUIRED
   gmodule-2.0
   libxml-2.0 >= 2.4.0
 ])
diff --git a/gladeui/glade-signal-model.c b/gladeui/glade-signal-model.c
index 2b383e51..4d1a8a40 100644
--- a/gladeui/glade-signal-model.c
+++ b/gladeui/glade-signal-model.c
@@ -64,18 +64,6 @@ G_DEFINE_TYPE_WITH_CODE (GladeSignalModel, glade_signal_model, G_TYPE_OBJECT,
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_SOURCE,
                                                 gtk_tree_drag_source_iface_init))
 
-static gint
-g_ptr_array_find (GPtrArray *array, gpointer data)
-{
-  gint i;
-  for (i = 0; i < array->len; i++)
-    {
-      if (array->pdata[i] == data)
-	return i;
-    }
-  return -1;
-}
-
 static void
 glade_signal_model_init (GladeSignalModel *object)
 {
@@ -524,13 +512,11 @@ glade_signal_model_get_path (GtkTreeModel *model, GtkTreeIter *iter)
 	    {
 	      if (handlers)
 		{
-		  gint handler_index = g_ptr_array_find (handlers, handler);
-		  if (handler_index == -1) /* dummy handler */
-		    {
-		      index1 += handlers->len;
-		    }
-		  else
+		  guint handler_index;
+		  if (g_ptr_array_find (handlers, handler, &handler_index))
 		    index1 += handler_index;
+		  else
+		    index1 += handlers->len;
 		}
 	      break;
 	    }
@@ -582,7 +568,8 @@ glade_signal_model_get_value (GtkTreeModel *model,
         {
           GPtrArray *handlers = g_hash_table_lookup (sig_model->priv->signals,
                                                      glade_signal_get_name (signal));
-          if (!handlers || !handlers->len || g_ptr_array_find (handlers, signal) == 0)
+          guint index;
+          if (!handlers || !handlers->len || (g_ptr_array_find (handlers, signal, &index) && index == 0))
             g_value_set_boolean (value, TRUE);
           else
             g_value_set_boolean (value, FALSE);
@@ -718,7 +705,10 @@ glade_signal_model_iter_next (GtkTreeModel *model, GtkTreeIter *iter)
 	}
       else if (handlers)
 	{
-	  gint new_index = g_ptr_array_find (handlers, handler) + 1;
+	  guint new_index = 0;
+	  if (g_ptr_array_find (handlers, handler, &new_index))
+	    new_index++;
+
 	  if (new_index < handlers->len)
 	    {
 	      glade_signal_model_create_signal_iter (sig_model, widget,
-- 
2.11.0



More information about the pkg-gnome-maintainers mailing list