[Telepathy-commits] [telepathy-mission-control/master] Allocate McdFilter with GSlice

Alberto Mardegan alberto.mardegan at nokia.com
Mon Nov 10 04:09:41 PST 2008


---
 src/mcd-dispatcher.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 2eecdd5..fdd79f5 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -391,7 +391,7 @@ chain_add_filter (GList *chain,
     GList *elem;
     McdFilter *filter_data;
 
-    filter_data = g_malloc (sizeof (McdFilter));
+    filter_data = g_slice_new (McdFilter);
     filter_data->func = filter;
     filter_data->priority = priority;
     filter_data->user_data = user_data;
@@ -412,7 +412,7 @@ chain_remove_filter (GList *chain, McdFilterFunc func)
     for (elem = chain; elem; elem = elem->next)
     {
 	if (((McdFilter *)elem->data)->func == func)
-	    g_free (elem->data);
+	    g_slice_free (McdFilter, elem->data);
 	else
 	    new_chain = g_list_append (new_chain, elem->data);
     }
@@ -424,14 +424,17 @@ chain_remove_filter (GList *chain, McdFilterFunc func)
 static void
 free_filter_chains (struct iface_chains_t *chains)
 {
+    GList *list;
     if (chains->chain_in)
     {
-	g_list_foreach (chains->chain_in, (GFunc)g_free, NULL);
+        for (list = chains->chain_in; list != NULL; list = list->next)
+            g_slice_free (McdFilter, list->data);
 	g_list_free (chains->chain_in);
     }
     if (chains->chain_out)
     {
-	g_list_foreach (chains->chain_out, (GFunc)g_free, NULL);
+        for (list = chains->chain_out; list != NULL; list = list->next)
+            g_slice_free (McdFilter, list->data);
 	g_list_free (chains->chain_out);
     }
     g_free (chains);
@@ -1678,7 +1681,7 @@ _mcd_dispatcher_finalize (GObject * object)
     {
         GList *list;
         for (list = priv->filters; list != NULL; list = list->next)
-            g_free (list->data);
+            g_slice_free (McdFilter, list->data);
         g_list_free (priv->filters);
     }
 
-- 
1.5.6.5




More information about the Telepathy-commits mailing list