]> Pileus Git - ~andy/gtk/commitdiff
tests: fix testtreecolumns not to segfault at startup
authorCosimo Cecchi <cosimoc@gnome.org>
Thu, 27 Sep 2012 20:53:34 +0000 (16:53 -0400)
committerCosimo Cecchi <cosimoc@gnome.org>
Thu, 27 Sep 2012 20:54:40 +0000 (16:54 -0400)
The class/object definitions have the wrong size, and we're not using
G_DEFINE_TYPE. This fixes the test segfaulting when opening it.

tests/testtreecolumns.c

index 6edb465a46aacbe1540b054098302b16edf318f0..4c1d87fbf015e13d6c59f4885230b2028831e077 100644 (file)
@@ -65,7 +65,7 @@ typedef struct _ViewColumnModelClass ViewColumnModelClass;
 
 struct _ViewColumnModel
 {
-  GObject parent;
+  GtkListStore parent;
   GtkTreeView *view;
   GList *columns;
   gint stamp;
@@ -73,7 +73,7 @@ struct _ViewColumnModel
 
 struct _ViewColumnModelClass
 {
-  GObjectClass parent_class;
+  GtkListStoreClass parent_class;
 };
 
 static void view_column_model_init (ViewColumnModel *model)
@@ -365,62 +365,16 @@ view_column_model_drag_dest_init (GtkTreeDragDestIface *iface)
   iface->row_drop_possible = view_column_model_row_drop_possible;
 }
 
-GType
-view_column_model_get_type (void)
+static void
+view_column_model_class_init (ViewColumnModelClass *klass)
 {
-  static GType view_column_model_type = 0;
-
-  if (!view_column_model_type)
-    {
-      const GTypeInfo view_column_model_info =
-      {
-       sizeof (GtkListStoreClass),
-       NULL,           /* base_init */
-       NULL,           /* base_finalize */
-        NULL,          /* class_init */
-       NULL,           /* class_finalize */
-       NULL,           /* class_data */
-        sizeof (GtkListStore),
-       0,
-        (GInstanceInitFunc) view_column_model_init,
-      };
-
-      const GInterfaceInfo tree_model_info =
-      {
-       (GInterfaceInitFunc) view_column_model_tree_model_init,
-       NULL,
-       NULL
-      };
-
-      const GInterfaceInfo drag_source_info =
-      {
-       (GInterfaceInitFunc) view_column_model_drag_source_init,
-       NULL,
-       NULL
-      };
-
-      const GInterfaceInfo drag_dest_info =
-      {
-       (GInterfaceInitFunc) view_column_model_drag_dest_init,
-       NULL,
-       NULL
-      };
-
-      view_column_model_type = g_type_register_static (G_TYPE_OBJECT, "ViewModelColumn", &view_column_model_info, 0);
-      g_type_add_interface_static (view_column_model_type,
-                                  GTK_TYPE_TREE_MODEL,
-                                  &tree_model_info);
-      g_type_add_interface_static (view_column_model_type,
-                                  GTK_TYPE_TREE_DRAG_SOURCE,
-                                  &drag_source_info);
-      g_type_add_interface_static (view_column_model_type,
-                                  GTK_TYPE_TREE_DRAG_DEST,
-                                  &drag_dest_info);
-    }
-
-  return view_column_model_type;
 }
 
+G_DEFINE_TYPE_WITH_CODE (ViewColumnModel, view_column_model, GTK_TYPE_LIST_STORE,
+                         G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, view_column_model_tree_model_init)
+                         G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_SOURCE, view_column_model_drag_source_init)
+                         G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_DEST, view_column_model_drag_dest_init))
+
 static void
 update_columns (GtkTreeView *view, ViewColumnModel *view_model)
 {