Warnings: function type cast for g_list_foreach
[pspp] / src / ui / gui / psppire-selector.c
index a021d92190eba329705f1fca38713351d46c7c98..165d1faadcbd231d0c31ffae9ed5704291d5a08d 100644 (file)
@@ -67,9 +67,7 @@
 
 #include "psppire-selector.h"
 
-static void psppire_selector_class_init    (PsppireSelectorClass *class);
-static void psppire_selector_init          (PsppireSelector      *selector);
-
+G_DEFINE_TYPE (PsppireSelector, psppire_selector, GTK_TYPE_BUTTON)
 
 static void set_direction (PsppireSelector *, enum psppire_selector_dir);
 
@@ -100,39 +98,8 @@ on_row_inserted (PsppireSelector *selector)
   g_signal_emit (selector, signals [DE_SELECTED], 0);
 }
 
-
-GType
-psppire_selector_get_type (void)
-{
-  static GType psppire_selector_type = 0;
-
-  if (!psppire_selector_type)
-    {
-      static const GTypeInfo psppire_selector_info =
-      {
-       sizeof (PsppireSelectorClass),
-       (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-       (GClassInitFunc)psppire_selector_class_init,
-       (GClassFinalizeFunc) NULL,
-       NULL,
-        sizeof (PsppireSelector),
-       0,
-       (GInstanceInitFunc) psppire_selector_init,
-      };
-
-      psppire_selector_type =
-       g_type_register_static (GTK_TYPE_BUTTON, "PsppireSelector",
-                               &psppire_selector_info, 0);
-    }
-
-  return psppire_selector_type;
-}
-
 static GObjectClass * parent_class = NULL;
 
-
-
 static void
 dump_hash_entry (gpointer key, gpointer value, gpointer obj)
 {
@@ -188,8 +155,11 @@ psppire_selector_dispose (GObject *obj)
       sel->source_litem = NULL;
     }
 
-  g_object_unref (sel->dest);
-  g_object_unref (sel->source);
+  if (sel->dest)
+    g_object_unref (sel->dest);
+
+  if (sel->source)
+    g_object_unref (sel->source);
 
   /* Chain up to the parent class */
   G_OBJECT_CLASS (parent_class)->dispose (obj);
@@ -604,7 +574,7 @@ de_select_tree_model (GtkTreeSelection *selection, GtkTreeModel *model)
     }
 
   /* Delete list of RowRefs and its contents */
-  g_list_foreach (selected_rows, (GFunc) gtk_tree_row_reference_free, NULL);
+  g_list_foreach (selected_rows, (GFunc) (void (*)(void)) gtk_tree_row_reference_free, NULL);
   g_list_free (selected_rows);
 }
 
@@ -691,7 +661,7 @@ select_selection (PsppireSelector *selector)
                        );
     }
 
-  g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL);
+  g_list_foreach (selected_rows, (GFunc) (void (*)(void)) gtk_tree_path_free, NULL);
   g_list_free (selected_rows);
 
   refilter (selector);