Author: benny
Date: 2006-11-03 19:15:42 +0000 (Fri, 03 Nov 2006)
New Revision: 23615

Modified:
   libxfcegui4/trunk/libxfcegui4/netk-application.c
   libxfcegui4/trunk/libxfcegui4/netk-class-group.c
   libxfcegui4/trunk/libxfcegui4/netk-pager.c
   libxfcegui4/trunk/libxfcegui4/netk-private.h
   libxfcegui4/trunk/libxfcegui4/netk-screen.c
   libxfcegui4/trunk/libxfcegui4/netk-tasklist.c
   libxfcegui4/trunk/libxfcegui4/netk-trayicon.c
   libxfcegui4/trunk/libxfcegui4/netk-util.c
   libxfcegui4/trunk/libxfcegui4/netk-window.c
   libxfcegui4/trunk/libxfcegui4/netk-workspace.c
Log:
Apply patch from Nick Schermer <[EMAIL PROTECTED]> to plug memory leaks and 
reduce relocations. Bug #2377.

Modified: libxfcegui4/trunk/libxfcegui4/netk-application.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-application.c    2006-11-03 18:39:24 UTC 
(rev 23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-application.c    2006-11-03 19:15:42 UTC 
(rev 23615)
@@ -80,31 +80,20 @@
 GType
 netk_application_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkApplicationClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_application_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkApplication),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_application_init,
-            NULL               /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (G_TYPE_OBJECT, "NetkApplication",
-                                    &object_info, 0);
+        type = _netk_g_type_register_simple (G_TYPE_OBJECT,
+                                             "NetkApplication",
+                                             sizeof (NetkApplicationClass),
+                                             netk_application_class_init,
+                                             sizeof (NetkApplication),
+                                             netk_application_init,
+                                             0);                               
     
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -128,14 +117,14 @@
     object_class->finalize = netk_application_finalize;
 
     signals[NAME_CHANGED] =
-        g_signal_new ("name_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("name_changed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkApplicationClass, name_changed),
                       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE,
                       0);
 
     signals[ICON_CHANGED] =
-        g_signal_new ("icon_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("icon_changed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkApplicationClass, icon_changed),
                       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE,

Modified: libxfcegui4/trunk/libxfcegui4/netk-class-group.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-class-group.c    2006-11-03 18:39:24 UTC 
(rev 23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-class-group.c    2006-11-03 19:15:42 UTC 
(rev 23615)
@@ -64,30 +64,20 @@
 GType
 netk_class_group_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkClassGroupClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_class_group_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkClassGroup),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_class_group_init,
-            NULL                /* value_table */
-        };
-
-        object_type = g_type_register_static (G_TYPE_OBJECT,
-            "NetkClassGroup", &object_info, 0);
+        type = _netk_g_type_register_simple (G_TYPE_OBJECT,
+                                             "NetkClassGroup",
+                                             sizeof (NetkClassGroupClass),
+                                             netk_class_group_class_init,
+                                             sizeof (NetkClassGroup),
+                                             netk_class_group_init,
+                                             0);
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -101,18 +91,19 @@
 
     gobject_class->finalize = netk_class_group_finalize;
 
-    signals[NAME_CHANGED] =
-        g_signal_new ("name_changed",
-        G_OBJECT_CLASS_TYPE (gobject_class),
-        G_SIGNAL_RUN_LAST,
-        G_STRUCT_OFFSET (NetkClassGroupClass, name_changed),
-        NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-    signals[ICON_CHANGED] =
-        g_signal_new ("icon_changed",
-        G_OBJECT_CLASS_TYPE (gobject_class),
-        G_SIGNAL_RUN_LAST,
-        G_STRUCT_OFFSET (NetkClassGroupClass, icon_changed),
-        NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+    signals[NAME_CHANGED] = 
+        g_signal_new (I_("name_changed"),
+                      G_OBJECT_CLASS_TYPE (gobject_class),
+                      G_SIGNAL_RUN_LAST,
+                      G_STRUCT_OFFSET (NetkClassGroupClass, name_changed),
+                      NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 
0);
+                      
+    signals[ICON_CHANGED] = 
+        g_signal_new (I_("icon_changed"),
+                      G_OBJECT_CLASS_TYPE (gobject_class),
+                      G_SIGNAL_RUN_LAST,
+                      G_STRUCT_OFFSET (NetkClassGroupClass, icon_changed),
+                      NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 
0);
 }
 
 static void

Modified: libxfcegui4/trunk/libxfcegui4/netk-pager.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-pager.c  2006-11-03 18:39:24 UTC (rev 
23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-pager.c  2006-11-03 19:15:42 UTC (rev 
23615)
@@ -29,6 +29,7 @@
 #undef GDK_MULTIHEAD_SAFE
 #endif
 
+#include "netk-private.h"
 #include "netk-pager.h"
 #include "netk-workspace.h"
 #include "netk-window.h"
@@ -120,31 +121,20 @@
 GType
 netk_pager_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkPagerClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_pager_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkPager),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_pager_init,
-            NULL               /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (GTK_TYPE_WIDGET, "NetkPager",
-                                    &object_info, 0);
+        type = _netk_g_type_register_simple (GTK_TYPE_WIDGET,
+                                             "NetkPager",
+                                             sizeof (NetkPagerClass),
+                                             netk_pager_class_init,
+                                             sizeof (NetkPager),
+                                             netk_pager_init,
+                                             0);                               
     
     }
 
-    return object_type;
+    return type;
 }
 
 static void

Modified: libxfcegui4/trunk/libxfcegui4/netk-private.h
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-private.h        2006-11-03 18:39:24 UTC 
(rev 23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-private.h        2006-11-03 19:15:42 UTC 
(rev 23615)
@@ -44,6 +44,21 @@
 #define _netk_slice_free(type, ptr)               G_STMT_START{ g_free 
((ptr)); }G_STMT_END
 #endif
 
+#if GLIB_CHECK_VERSION(2,10,0)
+#define I_(string) (g_intern_static_string ((string)))
+#else
+#define I_(string) (g_quark_to_string (g_quark_from_static_string ((string))))
+#endif
+
+GType
+_netk_g_type_register_simple (GType        type_parent,
+                              const gchar *type_name_static,
+                              guint        class_size,
+                              gpointer     class_init,
+                              guint        instance_size,
+                              gpointer     instance_init,
+                              GTypeFlags   flags);
+
 void p_netk_application_process_property_notify (NetkApplication * app,
                                                  XEvent * xevent);
 void p_netk_window_process_property_notify (NetkWindow * window,

Modified: libxfcegui4/trunk/libxfcegui4/netk-screen.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-screen.c 2006-11-03 18:39:24 UTC (rev 
23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-screen.c 2006-11-03 19:15:42 UTC (rev 
23615)
@@ -151,31 +151,20 @@
 GType
 netk_screen_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkScreenClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_screen_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkScreen),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_screen_init,
-            NULL               /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (G_TYPE_OBJECT, "NetkScreen", &object_info,
-                                    0);
+        type = _netk_g_type_register_simple (G_TYPE_OBJECT,
+                                             "NetkScreen",
+                                             sizeof (NetkScreenClass),
+                                             netk_screen_class_init,
+                                             sizeof (NetkScreen),
+                                             netk_screen_init,
+                                             0);                               
     
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -198,70 +187,70 @@
     object_class->finalize = netk_screen_finalize;
 
     signals[ACTIVE_WINDOW_CHANGED] =
-        g_signal_new ("active_window_changed",
+        g_signal_new (I_("active_window_changed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass,
                                        active_window_changed), NULL, NULL,
                       g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     signals[ACTIVE_WORKSPACE_CHANGED] =
-        g_signal_new ("active_workspace_changed",
+        g_signal_new (I_("active_workspace_changed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass,
                                        active_workspace_changed), NULL, NULL,
                       g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     signals[WINDOW_STACKING_CHANGED] =
-        g_signal_new ("window_stacking_changed",
+        g_signal_new (I_("window_stacking_changed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass,
                                        window_stacking_changed), NULL, NULL,
                       g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     signals[WINDOW_OPENED] =
-        g_signal_new ("window_opened", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("window_opened"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkScreenClass,
                                                           window_opened),
                       NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
                       G_TYPE_NONE, 1, NETK_TYPE_WINDOW);
 
     signals[WINDOW_CLOSED] =
-        g_signal_new ("window_closed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("window_closed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkScreenClass,
                                                           window_closed),
                       NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
                       G_TYPE_NONE, 1, NETK_TYPE_WINDOW);
 
     signals[WORKSPACE_CREATED] =
-        g_signal_new ("workspace_created", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("workspace_created"), G_OBJECT_CLASS_TYPE 
(object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkScreenClass,
                                                           workspace_created),
                       NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
                       G_TYPE_NONE, 1, NETK_TYPE_WORKSPACE);
 
     signals[WORKSPACE_DESTROYED] =
-        g_signal_new ("workspace_destroyed",
+        g_signal_new (I_("workspace_destroyed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, workspace_destroyed),
                       NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
                       G_TYPE_NONE, 1, NETK_TYPE_WORKSPACE);
 
     signals[APPLICATION_OPENED] =
-        g_signal_new ("application_opened",
+        g_signal_new (I_("application_opened"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, application_opened),
                       NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
                       G_TYPE_NONE, 1, NETK_TYPE_APPLICATION);
 
     signals[APPLICATION_CLOSED] =
-        g_signal_new ("application_closed",
+        g_signal_new (I_("application_closed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, application_closed),
                       NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
                       G_TYPE_NONE, 1, NETK_TYPE_APPLICATION);
 
     signals[CLASS_GROUP_OPENED] =
-        g_signal_new ("class_group_opened",
+        g_signal_new (I_("class_group_opened"),
                       G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, class_group_opened),
@@ -270,7 +259,7 @@
                       G_TYPE_NONE, 1, NETK_TYPE_CLASS_GROUP);
 
     signals[CLASS_GROUP_CLOSED] =
-        g_signal_new ("class_group_closed",
+        g_signal_new (I_("class_group_closed"),
                       G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, class_group_closed),
@@ -279,21 +268,21 @@
                       G_TYPE_NONE, 1, NETK_TYPE_CLASS_GROUP);
 
     signals[BACKGROUND_CHANGED] =
-        g_signal_new ("background_changed",
+        g_signal_new (I_("background_changed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, background_changed),
                       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE,
                       0);
 
     signals[SHOWING_DESKTOP_CHANGED] =
-        g_signal_new ("showing_desktop_changed",
+        g_signal_new (I_("showing_desktop_changed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, 
showing_desktop_changed),
                       NULL, NULL,
                       g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     signals[VIEWPORTS_CHANGED] =
-        g_signal_new ("viewports_changed",
+        g_signal_new (I_("viewports_changed"),
                       G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (NetkScreenClass, viewports_changed),
                       NULL, NULL,
@@ -1005,6 +994,8 @@
     g_list_free (created);
     g_list_free (closed_apps);
     g_list_free (created_apps);
+    g_list_free (closed_class_groups);
+    g_list_free (created_class_groups);
 
     --reentrancy_guard;
 

Modified: libxfcegui4/trunk/libxfcegui4/netk-tasklist.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-tasklist.c       2006-11-03 18:39:24 UTC 
(rev 23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-tasklist.c       2006-11-03 19:15:42 UTC 
(rev 23615)
@@ -242,31 +242,20 @@
 GType
 netk_task_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkTaskClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_task_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkTask),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_task_init,
-            NULL               /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (G_TYPE_OBJECT, "NetkTask", &object_info,
-                                    0);
+        type = _netk_g_type_register_simple (G_TYPE_OBJECT,
+                                             "NetkTask",
+                                             sizeof (NetkTaskClass),
+                                             netk_task_class_init,
+                                             sizeof (NetkTask),
+                                             netk_task_init,
+                                             0);
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -387,31 +376,20 @@
 GType
 netk_tasklist_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkTasklistClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_tasklist_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkTasklist),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_tasklist_init,
-            NULL               /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (GTK_TYPE_CONTAINER, "NetkTasklist",
-                                    &object_info, 0);
+        type = _netk_g_type_register_simple (GTK_TYPE_CONTAINER,
+                                             "NetkTasklist",
+                                             sizeof (NetkTasklistClass),
+                                             netk_tasklist_class_init,
+                                             sizeof (NetkTasklist),
+                                             netk_tasklist_init,
+                                             0);
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -909,6 +887,8 @@
         }
     }
 
+    g_list_free (ungrouped_class_groups);
+
     /* Always let you go down to a zero size: */
     if (array->len > 0)
         g_array_index (array, int, array->len - 1) = 0;
@@ -1057,11 +1037,13 @@
         i++;
         l = l->next;
     }
-    g_list_free (visible_tasks);
 
     /* Update icon geometries. */
     netk_tasklist_update_icon_geometries (tasklist);
 
+    g_list_free (visible_tasks);
+    g_list_free (ungrouped_class_groups);
+
     GTK_WIDGET_CLASS (tasklist_parent_class)->size_allocate (widget,
                                                              allocation);
 }

Modified: libxfcegui4/trunk/libxfcegui4/netk-trayicon.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-trayicon.c       2006-11-03 18:39:24 UTC 
(rev 23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-trayicon.c       2006-11-03 19:15:42 UTC 
(rev 23615)
@@ -32,6 +32,8 @@
 #include <gtk/gtk.h>
 #include <string.h>
 
+#include "netk-private.h"
+
 #include <libxfcegui4/netk-trayicon.h>
 #include <libxfcegui4/xfce_systemtray.h>
 
@@ -52,30 +54,20 @@
 GType
 netk_tray_icon_get_type (void)
 {
-    static GType netk_tray_icon_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    if (!netk_tray_icon_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo netk_tray_icon_info = {
-            sizeof (NetkTrayIconClass),
-            NULL,              /* base_init */
-            NULL,              /* base_finalize */
-            (GClassInitFunc) netk_tray_icon_class_init,
-            NULL,              /* class_finalize */
-            NULL,              /* class_data */
-            sizeof (NetkTrayIcon),
-            0,                 /* n_preallocs */
-            (GInstanceInitFunc) netk_tray_icon_init,
-            NULL               /* value_table */
-        };
-
-        netk_tray_icon_type = g_type_register_static (GTK_TYPE_PLUG,
-                                                      "NetkTrayIcon",
-                                                      &netk_tray_icon_info,
-                                                      0);
+        type = _netk_g_type_register_simple (GTK_TYPE_PLUG,
+                                             "NetkTrayIcon",
+                                             sizeof (NetkTrayIconClass),
+                                             netk_tray_icon_class_init,
+                                             sizeof (NetkTrayIcon),
+                                             netk_tray_icon_init,
+                                             0);
     }
 
-    return (netk_tray_icon_type);
+    return type;
 }
 
 static void

Modified: libxfcegui4/trunk/libxfcegui4/netk-util.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-util.c   2006-11-03 18:39:24 UTC (rev 
23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-util.c   2006-11-03 19:15:42 UTC (rev 
23615)
@@ -42,6 +42,34 @@
 }
 #endif
 
+GType
+_netk_g_type_register_simple (GType        type_parent,
+                              const gchar *type_name_static,
+                              guint        class_size,
+                              gpointer     class_init,
+                              guint        instance_size,
+                              gpointer     instance_init,
+                              GTypeFlags   flags)
+{
+  /* setup the type info on the stack */
+  GTypeInfo info =
+  {
+    class_size,
+    NULL,
+    NULL,
+    (GClassInitFunc) class_init,
+    NULL,
+    NULL,
+    instance_size,
+    0,
+    (GInstanceInitFunc) instance_init,
+    NULL,
+  };
+
+  /* register the new type */
+  return g_type_register_static (type_parent, I_(type_name_static), &info, 0);
+}
+
 void
 netk_gtk_window_set_type (GtkWindow * window, NetkWindowType type)
 {

Modified: libxfcegui4/trunk/libxfcegui4/netk-window.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-window.c 2006-11-03 18:39:24 UTC (rev 
23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-window.c 2006-11-03 19:15:42 UTC (rev 
23615)
@@ -187,31 +187,20 @@
 GType
 netk_window_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkWindowClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_window_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkWindow),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_window_init,
-            NULL                /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (G_TYPE_OBJECT, "NetkWindow", &object_info,
-                                    0);
+        type = _netk_g_type_register_simple (G_TYPE_OBJECT,
+                                             "NetkWindow",
+                                             sizeof (NetkWindowClass),
+                                             netk_window_class_init,
+                                             sizeof (NetkWindow),
+                                             netk_window_init,
+                                             0);
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -241,13 +230,13 @@
     object_class->finalize = netk_window_finalize;
 
     signals[NAME_CHANGED] =
-        g_signal_new ("name_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("name_changed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWindowClass,
                                                           name_changed), NULL,
                       NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     signals[STATE_CHANGED] =
-        g_signal_new ("state_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("state_changed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWindowClass,
                                                           state_changed),
                       NULL, NULL, p_netk_marshal_VOID__FLAGS_FLAGS,
@@ -255,19 +244,19 @@
                       NETK_TYPE_WINDOW_STATE);
 
     signals[WORKSPACE_CHANGED] =
-        g_signal_new ("workspace_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("workspace_changed"), G_OBJECT_CLASS_TYPE 
(object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWindowClass,
                                                           workspace_changed),
                       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 
0);
 
     signals[ICON_CHANGED] =
-        g_signal_new ("icon_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("icon_changed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWindowClass,
                                                           icon_changed), NULL,
                       NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     signals[ACTIONS_CHANGED] =
-        g_signal_new ("actions_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("actions_changed"), G_OBJECT_CLASS_TYPE 
(object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWindowClass,
                                                           actions_changed),
                       NULL, NULL, p_netk_marshal_VOID__FLAGS_FLAGS,
@@ -275,7 +264,7 @@
                       NETK_TYPE_WINDOW_ACTIONS);
 
     signals[GEOMETRY_CHANGED] =
-        g_signal_new ("geometry_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("geometry_changed"), G_OBJECT_CLASS_TYPE 
(object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWindowClass,
                                                           geometry_changed),
                       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE,

Modified: libxfcegui4/trunk/libxfcegui4/netk-workspace.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-workspace.c      2006-11-03 18:39:24 UTC 
(rev 23614)
+++ libxfcegui4/trunk/libxfcegui4/netk-workspace.c      2006-11-03 19:15:42 UTC 
(rev 23615)
@@ -65,31 +65,20 @@
 GType
 netk_workspace_get_type (void)
 {
-    static GType object_type = 0;
+    static GType type = G_TYPE_INVALID;
 
-    g_type_init ();
-
-    if (!object_type)
+    if (G_UNLIKELY (type == G_TYPE_INVALID))
     {
-        static const GTypeInfo object_info = {
-            sizeof (NetkWorkspaceClass),
-            (GBaseInitFunc) NULL,
-            (GBaseFinalizeFunc) NULL,
-            (GClassInitFunc) netk_workspace_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof (NetkWorkspace),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) netk_workspace_init,
-            NULL               /* value_table */
-        };
-
-        object_type =
-            g_type_register_static (G_TYPE_OBJECT, "NetkWorkspace",
-                                    &object_info, 0);
+        type = _netk_g_type_register_simple (G_TYPE_OBJECT,
+                                             "NetkWorkspace",
+                                             sizeof (NetkWorkspaceClass),
+                                             netk_workspace_class_init,
+                                             sizeof (NetkWorkspace),
+                                             netk_workspace_init,
+                                             0);
     }
 
-    return object_type;
+    return type;
 }
 
 static void
@@ -112,7 +101,7 @@
     object_class->finalize = netk_workspace_finalize;
 
     signals[NAME_CHANGED] =
-        g_signal_new ("name_changed", G_OBJECT_CLASS_TYPE (object_class),
+        g_signal_new (I_("name_changed"), G_OBJECT_CLASS_TYPE (object_class),
                       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NetkWorkspaceClass,
                                                           name_changed), NULL,
                       NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to