[glade] Use g_ptr_array_find() from GLib



commit 8a73d114ca5b4d37a770d0b6b69dd17a366dbcf4
Author: Jonh Wendell <jonh wendell redhat com>
Date:   Thu May 4 11:05:48 2017 -0300

    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 ac59f09..db7487e 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 2b383e5..4d1a8a4 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,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]