[grisbi-test] [PATCH 5/6] fix memory leaks in gsb_scheduler_list_default_sort_function ()

pbiava pierre.biava at nerim.net
Ven 19 Juil 20:24:31 CEST 2013


---
 src/gsb_scheduler_list.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/gsb_scheduler_list.c b/src/gsb_scheduler_list.c
index 853f071..e558542 100644
--- a/src/gsb_scheduler_list.c
+++ b/src/gsb_scheduler_list.c
@@ -815,8 +815,8 @@ gint gsb_scheduler_list_default_sort_function ( GtkTreeModel *model,
 
     if ( number_1 == -1 )
     {
-        if ( date_1) g_free ( date_1);
-        if ( date_2) g_free ( date_2);
+        if ( date_1) g_date_free ( date_1);
+        if ( date_2) g_date_free ( date_2);
         if ( sort_type == GTK_SORT_ASCENDING )
             return 1;
         else
@@ -824,8 +824,8 @@ gint gsb_scheduler_list_default_sort_function ( GtkTreeModel *model,
     }
     else if ( number_2 == -1 )
     {
-        if ( date_1) g_free ( date_1);
-        if ( date_2) g_free ( date_2);
+        if ( date_1) g_date_free ( date_1);
+        if ( date_2) g_date_free ( date_2);
         if ( sort_type == GTK_SORT_ASCENDING )
             return -1;
         else
@@ -836,8 +836,12 @@ gint gsb_scheduler_list_default_sort_function ( GtkTreeModel *model,
         return_value = g_date_compare ( date_1, date_2 );
 
     if ( return_value )
-        return return_value;
+    {
+        if ( date_1) g_date_free ( date_1);
+        if ( date_2) g_date_free ( date_2);
 
+        return return_value;
+    }
     /* if we are here it's because we are in a child of split */
     if ( number_1 < 0 )
     {
@@ -857,8 +861,8 @@ gint gsb_scheduler_list_default_sort_function ( GtkTreeModel *model,
     if (! return_value )
         return_value = number_1 - number_2;
 
-    if ( date_1) g_free ( date_1);
-    if ( date_2) g_free ( date_2);
+    if ( date_1) g_date_free ( date_1);
+    if ( date_2) g_date_free ( date_2);
 
     return return_value;
 }
-- 
1.8.1.5



Plus d'informations sur la liste de diffusion test