[grisbi-test] [PATCH 08/10] fix memory leaks in division_column_expanded ()
pbiava
pierre.biava at nerim.net
Dim 21 Juil 19:52:31 CEST 2013
also rename gsb_data_transaction_get_transactions_list_by_date () in
gsb_data_transaction_get_metatree_transactions_list ()
---
src/gsb_data_transaction.c | 13 ++++++++++---
src/gsb_data_transaction.h | 2 +-
src/metatree.c | 9 +++------
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/gsb_data_transaction.c b/src/gsb_data_transaction.c
index 689eefa..795b582 100644
--- a/src/gsb_data_transaction.c
+++ b/src/gsb_data_transaction.c
@@ -2591,7 +2591,7 @@ gint gsb_data_transaction_check_content_payment ( gint payment_number,
*
* \return the slist of transactions structures
* */
-GSList *gsb_data_transaction_get_transactions_list_by_date ( void )
+GSList *gsb_data_transaction_get_metatree_transactions_list ( void )
{
GSList *list_tmp;
@@ -2600,12 +2600,19 @@ GSList *gsb_data_transaction_get_transactions_list_by_date ( void )
else
list_tmp = g_slist_copy ( transactions_list );
- if ( etat.metatree_sort_transactions == 1 )
+ switch ( etat.metatree_sort_transactions )
+ {
+ case 1 :
list_tmp = g_slist_sort (list_tmp,
(GCompareFunc) classement_sliste_transactions_par_date );
- else
+ break;
+ case 2 :
list_tmp = g_slist_sort (list_tmp,
(GCompareFunc) classement_sliste_transactions_par_date_decroissante );
+ break;
+ default :
+ break;
+ }
return list_tmp;
}
diff --git a/src/gsb_data_transaction.h b/src/gsb_data_transaction.h
index 4349988..9427aa5 100644
--- a/src/gsb_data_transaction.h
+++ b/src/gsb_data_transaction.h
@@ -56,6 +56,7 @@ gsb_real gsb_data_transaction_get_last_transaction_with_div_sub_div (
gint sub_div_nb,
gint type_div );
gint gsb_data_transaction_get_marked_transaction ( gint transaction_number );
+GSList *gsb_data_transaction_get_metatree_transactions_list ( void );
const gchar *gsb_data_transaction_get_method_of_payment_content ( gint transaction_number );
gint gsb_data_transaction_get_method_of_payment_number ( gint transaction_number );
gint gsb_data_transaction_get_mother_transaction_number ( gint transaction_number );
@@ -69,7 +70,6 @@ gint gsb_data_transaction_get_sub_category_number ( gint transaction_number );
const gchar *gsb_data_transaction_get_transaction_id ( gint transaction_number );
gint gsb_data_transaction_get_transaction_number ( gpointer transaction_pointer );
GSList *gsb_data_transaction_get_transactions_list ( void );
-GSList *gsb_data_transaction_get_transactions_list_by_date ( void );
GSList *gsb_import_get_transactions_list_for_import ( gint account_number,
GDate *first_date_import );
const GDate *gsb_data_transaction_get_value_date ( gint transaction_number );
diff --git a/src/metatree.c b/src/metatree.c
index 2f37043..bc69668 100644
--- a/src/metatree.c
+++ b/src/metatree.c
@@ -1070,12 +1070,8 @@ gboolean division_column_expanded ( GtkTreeView * treeview, GtkTreeIter * iter,
META_TREE_NO_DIV_COLUMN, &no_division,
META_TREE_NO_SUB_DIV_COLUMN, &no_sub_division,
-1 );
- if ( etat.metatree_sort_transactions )
- list_tmp_transactions = gsb_data_transaction_get_transactions_list_by_date ();
- else if ( etat.add_archive_in_total_balance )
- list_tmp_transactions = gsb_data_transaction_get_complete_transactions_list ();
- else
- list_tmp_transactions = gsb_data_transaction_get_transactions_list ();
+
+ list_tmp_transactions = gsb_data_transaction_get_metatree_transactions_list ();
while ( list_tmp_transactions )
{
@@ -1108,6 +1104,7 @@ gboolean division_column_expanded ( GtkTreeView * treeview, GtkTreeIter * iter,
}
list_tmp_transactions = list_tmp_transactions -> next;
}
+ g_slist_free ( list_tmp_transactions );
}
/* on colorise les lignes du tree_view */
--
1.8.1.5
Plus d'informations sur la liste de diffusion test