gnucash maint: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Fri Sep 14 11:22:28 EDT 2018


Updated	 via  https://github.com/Gnucash/gnucash/commit/5609b704 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/62eb95c0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4e716299 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/33fae41a (commit)
	from  https://github.com/Gnucash/gnucash/commit/ee77f38f (commit)



commit 5609b704c569975663d3bf3b85ea50965f602399
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Sep 14 11:51:25 2018 +0200

    Fix memory leaks in GncQueryView

diff --git a/gnucash/gnome-utils/gnc-query-view.c b/gnucash/gnome-utils/gnc-query-view.c
index 78dbe3b..a77fed7 100644
--- a/gnucash/gnome-utils/gnc-query-view.c
+++ b/gnucash/gnome-utils/gnc-query-view.c
@@ -219,6 +219,8 @@ gnc_query_view_init (GNCQueryView *qview)
     gnc_widget_set_style_context (GTK_WIDGET(qview), "GncQueryView");
 
     qview->query = NULL;
+    qview->selected_entry = NULL;
+    qview->selected_entry_list = NULL;
 
     qview->num_columns = 0;
     qview->column_params = NULL;
@@ -478,8 +480,9 @@ gnc_query_view_select_row_cb (GtkTreeSelection *selection, gpointer user_data)
     GList          *node;
     GList          *list_of_rows;
 
-    qview->selected_entry_list = NULL;
     qview->selected_entry = NULL;
+    g_list_free (qview->selected_entry_list);
+    qview->selected_entry_list = NULL;
 
     model =  gtk_tree_view_get_model (GTK_TREE_VIEW (qview));
     list_of_rows = gtk_tree_selection_get_selected_rows (selection, &model);
@@ -529,6 +532,7 @@ gnc_query_view_double_click_cb (GtkTreeView       *view,
         gtk_tree_model_get (model, &iter, 0, &entry, -1);
 
     qview->selected_entry = entry;
+    g_list_free (qview->selected_entry_list);
     qview->selected_entry_list = NULL;
 
     g_signal_emit (qview, query_view_signals[DOUBLE_CLICK_ENTRY], 0, entry);
@@ -648,7 +652,7 @@ gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry)
     model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview));
     selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (qview));
 
-    if(g_list_length (old_entry) > 0)
+    if(old_entry && g_list_length (old_entry) > 0)
     {
         /* Walk the list of old entries */
         for(node = old_entry; node; node = node->next)
@@ -684,25 +688,23 @@ gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry)
 void
 gnc_query_view_refresh (GNCQueryView *qview)
 {
-    GtkTreeModel     *model;
-    GList            *old_entry;
+    GtkTreeModel *model;
 
     g_return_if_fail (qview != NULL);
     g_return_if_fail (GNC_IS_QUERY_VIEW (qview));
 
-    old_entry = qview->selected_entry_list;
     model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview));
     gtk_list_store_clear (GTK_LIST_STORE (model));
 
     qview->num_entries = 0;
     qview->selected_entry = NULL;
-    qview->selected_entry_list = NULL;
 
     gnc_query_view_fill (qview);
 
-    gnc_query_view_refresh_selected (qview, old_entry);
+    gnc_query_view_refresh_selected (qview, qview->selected_entry_list);
 
-    g_list_free(old_entry);
+    g_list_free(qview->selected_entry_list);
+    qview->selected_entry_list = NULL;
 }
 
 
@@ -875,6 +877,7 @@ gnc_query_view_unselect_all (GNCQueryView *qview)
     gtk_tree_selection_unselect_all (selection);
 
     qview->selected_entry = NULL;
+    g_list_free (qview->selected_entry_list);
     qview->selected_entry_list = NULL;
 }
 

commit 62eb95c05cbb9069706a53fd5e5d7057ec823b54
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Sep 14 11:01:05 2018 +0200

    Fix memory leaks in gncOwnerGetBalanceInCurrency

diff --git a/libgnucash/engine/gncOwner.c b/libgnucash/engine/gncOwner.c
index 23578bf..5bea047 100644
--- a/libgnucash/engine/gncOwner.c
+++ b/libgnucash/engine/gncOwner.c
@@ -1493,7 +1493,10 @@ gncOwnerGetBalanceInCurrency (const GncOwner *owner,
                balance = gnc_numeric_add (balance, lot_balance,
                                           gnc_commodity_get_fraction (owner_currency), GNC_HOW_RND_ROUND_HALF_UP);
         }
+        g_list_free (lot_list);
     }
+    g_list_free (acct_list);
+    g_list_free (acct_types);
 
     pdb = gnc_pricedb_get_db (book);
 

commit 4e716299663482d9f53062e0fa7826ed91b4fddc
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Sep 14 10:47:31 2018 +0200

    Fix memory leak in xaccTransRetDateDue

diff --git a/libgnucash/engine/Transaction.c b/libgnucash/engine/Transaction.c
index c8320d3..d6041b3 100644
--- a/libgnucash/engine/Transaction.c
+++ b/libgnucash/engine/Transaction.c
@@ -2430,7 +2430,10 @@ xaccTransRetDateDue(const Transaction *trans)
     if (!trans) return 0;
     qof_instance_get_kvp (QOF_INSTANCE (trans), &v, 1, TRANS_DATE_DUE_KVP);
     if (G_VALUE_HOLDS_BOXED (&v))
+    {
         ret = ((Time64*)g_value_get_boxed (&v))->t;
+        g_value_unset (&v);
+    }
     if (!ret)
         return xaccTransRetDatePosted (trans);
     return ret;

commit 33fae41aaacce4e021a3abef330fbd5340a900b6
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Sep 14 10:01:38 2018 +0200

    Fix 1-byte memory leak on first run

diff --git a/gnucash/gnucash-bin.c b/gnucash/gnucash-bin.c
index 2592d2e..1a9b81c 100644
--- a/gnucash/gnucash-bin.c
+++ b/gnucash/gnucash-bin.c
@@ -610,7 +610,7 @@ static void
 inner_main (void *closure, int argc, char **argv)
 {
     SCM main_mod;
-    char* fn;
+    char* fn = NULL;
 
     scm_c_eval_string("(debug-set! stack 200000)");
 
@@ -654,6 +654,7 @@ inner_main (void *closure, int argc, char **argv)
     }
     else if (gnc_prefs_get_bool(GNC_PREFS_GROUP_NEW_USER, GNC_PREF_FIRST_STARTUP))
     {
+        g_free(fn); /* fn could be an empty string ("") */
         gnc_destroy_splash_screen();
         gnc_ui_new_user_dialog();
     }



Summary of changes:
 gnucash/gnome-utils/gnc-query-view.c | 19 +++++++++++--------
 gnucash/gnucash-bin.c                |  3 ++-
 libgnucash/engine/Transaction.c      |  3 +++
 libgnucash/engine/gncOwner.c         |  3 +++
 4 files changed, 19 insertions(+), 9 deletions(-)



More information about the gnucash-changes mailing list