Index: libxfcegui4/netk-window.c =================================================================== --- libxfcegui4/netk-window.c (revision 22517) +++ libxfcegui4/netk-window.c (working copy) @@ -214,7 +214,7 @@ static void netk_window_init (NetkWindow * window) { - window->priv = g_new0 (NetkWindowPrivate, 1); + window->priv = _netk_slice_new0 (NetkWindowPrivate); window->priv->name = g_strdup (FALLBACK_NAME);; window->priv->icon_name = NULL; @@ -302,7 +302,7 @@ if (window->priv->app) g_object_unref (G_OBJECT (window->priv->app)); - g_free (window->priv); + _netk_slice_free (NetkWindowPrivate, window->priv); G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-window-action-menu.c =================================================================== --- libxfcegui4/netk-window-action-menu.c (revision 22517) +++ libxfcegui4/netk-window-action-menu.c (working copy) @@ -380,7 +380,7 @@ if (amd->idle_handler) g_source_remove (amd->idle_handler); - g_free (amd); + _netk_slice_free (ActionMenuData, amd); } /** @@ -401,7 +401,7 @@ /* be sure to initialize libraries i18n support first */ _xfce_i18n_init (); - amd = g_new0 (ActionMenuData, 1); + amd = _netk_slice_new0 (ActionMenuData); amd->window = window; menu = gtk_menu_new (); Index: libxfcegui4/netk-xutils.c =================================================================== --- libxfcegui4/netk-xutils.c (revision 22517) +++ libxfcegui4/netk-xutils.c (working copy) @@ -1690,7 +1690,7 @@ { NetkIconCache *icon_cache; - icon_cache = g_new0 (NetkIconCache, 1); + icon_cache = _netk_slice_new0 (NetkIconCache); icon_cache->origin = USING_NO_ICON; icon_cache->prev_pixmap = None; @@ -1734,7 +1734,7 @@ { clear_icon_cache (icon_cache, FALSE); - g_free (icon_cache); + _netk_slice_free (NetkIconCache, icon_cache); } void Index: libxfcegui4/netk-pager.c =================================================================== --- libxfcegui4/netk-pager.c (revision 22517) +++ libxfcegui4/netk-pager.c (working copy) @@ -33,6 +33,7 @@ #include "netk-workspace.h" #include "netk-window.h" #include "netk-xutils.h" +#include "netk-private.h" #define N_SCREEN_CONNECTIONS 11 @@ -145,7 +146,7 @@ static void netk_pager_init (NetkPager * pager) { - pager->priv = g_new0 (NetkPagerPrivate, 1); + pager->priv = _netk_slice_new0 (NetkPagerPrivate); pager->priv->n_rows = 1; pager->priv->display_mode = NETK_PAGER_DISPLAY_CONTENT; @@ -196,7 +197,7 @@ pager->priv->bg_cache = NULL; } - g_free (pager->priv); + _netk_slice_free (NetkPagerPrivate, pager->priv); G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-tasklist.c =================================================================== --- libxfcegui4/netk-tasklist.c (revision 22517) +++ libxfcegui4/netk-tasklist.c (working copy) @@ -410,7 +410,7 @@ { GTK_WIDGET_SET_FLAGS (GTK_WIDGET (tasklist), GTK_NO_WINDOW); - tasklist->priv = g_new0 (NetkTasklistPrivate, 1); + tasklist->priv = _netk_slice_new0 (NetkTasklistPrivate); tasklist->priv->include_all_workspaces = FALSE; @@ -487,8 +487,7 @@ tasklist->priv->size_hints = NULL; tasklist->priv->size_hints_len = 0; - g_free (tasklist->priv); - tasklist->priv = NULL; + _netk_slice_free (NetkTasklistPrivate, tasklist->priv); G_OBJECT_CLASS (tasklist_parent_class)->finalize (object); } Index: libxfcegui4/netk-class-group.c =================================================================== --- libxfcegui4/netk-class-group.c (revision 22517) +++ libxfcegui4/netk-class-group.c (working copy) @@ -117,7 +117,7 @@ { NetkClassGroupPrivate *priv; - priv = g_new (NetkClassGroupPrivate, 1); + priv = _netk_slice_new (NetkClassGroupPrivate); class_group->priv = priv; priv->res_class = NULL; @@ -151,7 +151,7 @@ if (priv->mini_icon) g_object_unref (priv->mini_icon); - g_free (priv); + _netk_slice_free (NetkClassGroupPrivate, priv); G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-workspace.c =================================================================== --- libxfcegui4/netk-workspace.c (revision 22517) +++ libxfcegui4/netk-workspace.c (working copy) @@ -93,7 +93,7 @@ static void netk_workspace_init (NetkWorkspace * workspace) { - workspace->priv = g_new0 (NetkWorkspacePrivate, 1); + workspace->priv = _netk_slice_new0 (NetkWorkspacePrivate); workspace->priv->number = -1; } @@ -123,7 +123,7 @@ g_free (workspace->priv->name); - g_free (workspace->priv); + _netk_slice_free (NetkWorkspacePrivate, workspace->priv); G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-private.h =================================================================== --- libxfcegui4/netk-private.h (revision 22517) +++ libxfcegui4/netk-private.h (working copy) @@ -33,6 +33,17 @@ G_BEGIN_DECLS +/* support macros for the slice allocator */ +#if GLIB_CHECK_VERSION(2,10,0) +#define _netk_slice_new(type) (g_slice_new (type)) +#define _netk_slice_new0(type) (g_slice_new0 (type)) +#define _netk_slice_free(type, ptr) G_STMT_START{ g_slice_free (type, (ptr)); }G_STMT_END +#else +#define _netk_slice_new(type) (g_new (type, 1)) +#define _netk_slice_new0(type) (g_new0 (type, 1)) +#define _netk_slice_free(type, ptr) G_STMT_START{ g_free ((ptr)); }G_STMT_END +#endif + void p_netk_application_process_property_notify (NetkApplication * app, XEvent * xevent); void p_netk_window_process_property_notify (NetkWindow * window, Index: libxfcegui4/netk-application.c =================================================================== --- libxfcegui4/netk-application.c (revision 22517) +++ libxfcegui4/netk-application.c (working copy) @@ -108,7 +108,7 @@ static void netk_application_init (NetkApplication * application) { - application->priv = g_new0 (NetkApplicationPrivate, 1); + application->priv = _netk_slice_new0 (NetkApplicationPrivate); application->priv->icon_cache = p_netk_icon_cache_new (); p_netk_icon_cache_set_want_fallback (application->priv->icon_cache, FALSE); @@ -155,7 +155,7 @@ g_free (application->priv->name); - g_free (application->priv); + _netk_slice_free (NetkApplicationPrivate, application->priv); G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-screen.c =================================================================== --- libxfcegui4/netk-screen.c (revision 22517) +++ libxfcegui4/netk-screen.c (working copy) @@ -179,7 +179,7 @@ static void netk_screen_init (NetkScreen * screen) { - screen->priv = g_new0 (NetkScreenPrivate, 1); + screen->priv = _netk_slice_new0 (NetkScreenPrivate); } @@ -316,7 +316,7 @@ screens[screen->priv->number] = NULL; - g_free (screen->priv); + _netk_slice_free (NetkScreenPrivate, screen->priv); G_OBJECT_CLASS (parent_class)->finalize (object); }