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