gnucash maint: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Mon Aug 8 01:59:08 EDT 2022
Updated via https://github.com/Gnucash/gnucash/commit/de7a6308 (commit)
via https://github.com/Gnucash/gnucash/commit/ad27be33 (commit)
via https://github.com/Gnucash/gnucash/commit/b94164e8 (commit)
via https://github.com/Gnucash/gnucash/commit/b4d3d495 (commit)
from https://github.com/Gnucash/gnucash/commit/322a5998 (commit)
commit de7a63082be4eebf913814f28b046eaca7b53aad
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Mon Aug 8 09:05:19 2022 +0800
[gnc-sx-instance-model] leaks: free temporal_state
it's a simple struct containing GDate and int
diff --git a/libgnucash/app-utils/gnc-sx-instance-model.c b/libgnucash/app-utils/gnc-sx-instance-model.c
index 39507aaeb..4e114eb11 100644
--- a/libgnucash/app-utils/gnc-sx-instance-model.c
+++ b/libgnucash/app-utils/gnc-sx-instance-model.c
@@ -533,6 +533,8 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
instances->instance_list = g_list_reverse (instlist);
+ gnc_sx_destroy_temporal_state (temporal_state);
+
return instances;
}
commit ad27be333ec40c5eaec3a51d57119e27d9bd7a8f
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Mon Aug 8 12:59:34 2022 +0800
[gnc-sx-instance-model] prepend GList loops instead of append
diff --git a/libgnucash/app-utils/gnc-sx-instance-model.c b/libgnucash/app-utils/gnc-sx-instance-model.c
index c3a433857..39507aaeb 100644
--- a/libgnucash/app-utils/gnc-sx-instance-model.c
+++ b/libgnucash/app-utils/gnc-sx-instance-model.c
@@ -451,7 +451,7 @@ static void
_build_list_from_hash_elts(gpointer key, gpointer value, gpointer user_data)
{
GList **list = (GList**)user_data;
- *list = g_list_insert_sorted(*list, value, _compare_GncSxVariables);
+ *list = g_list_prepend (*list, value);
}
GList *
@@ -459,13 +459,14 @@ gnc_sx_instance_get_variables(GncSxInstance *inst)
{
GList *vars = NULL;
g_hash_table_foreach(inst->variable_bindings, _build_list_from_hash_elts, &vars);
- return vars;
+ return g_list_sort (vars, _compare_GncSxVariables);
}
static GncSxInstances*
_gnc_sx_gen_instances(gpointer *data, gpointer user_data)
{
GncSxInstances *instances = g_new0(GncSxInstances, 1);
+ GList *instlist = NULL;
SchedXaction *sx = (SchedXaction*)data;
const GDate *range_end = (const GDate*)user_data;
GDate creation_end, remind_end;
@@ -493,8 +494,7 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
seq_num = gnc_sx_get_instance_count(sx, postponed->data);
inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_POSTPONED,
&inst_date, postponed->data, seq_num);
- instances->instance_list =
- g_list_append(instances->instance_list, inst);
+ instlist = g_list_prepend (instlist, inst);
gnc_sx_destroy_temporal_state(temporal_state);
temporal_state = gnc_sx_clone_temporal_state(postponed->data);
gnc_sx_incr_temporal_state(sx, temporal_state);
@@ -512,7 +512,7 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
seq_num = gnc_sx_get_instance_count(sx, temporal_state);
inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_TO_CREATE,
&cur_date, temporal_state, seq_num);
- instances->instance_list = g_list_append(instances->instance_list, inst);
+ instlist = g_list_prepend (instlist, inst);
gnc_sx_incr_temporal_state(sx, temporal_state);
cur_date = xaccSchedXactionGetNextInstance(sx, temporal_state);
}
@@ -526,12 +526,13 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
seq_num = gnc_sx_get_instance_count(sx, temporal_state);
inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_REMINDER,
&cur_date, temporal_state, seq_num);
- instances->instance_list = g_list_append(instances->instance_list,
- inst);
+ instlist = g_list_prepend (instlist, inst);
gnc_sx_incr_temporal_state(sx, temporal_state);
cur_date = xaccSchedXactionGetNextInstance(sx, temporal_state);
}
+ instances->instance_list = g_list_reverse (instlist);
+
return instances;
}
@@ -848,7 +849,7 @@ _find_unreferenced_vars(gchar *key,
!g_hash_table_lookup_extended(cb_pair->hash, key, NULL, NULL))
{
DEBUG("variable [%s] not found", key);
- cb_pair->list = g_list_append(cb_pair->list, key);
+ cb_pair->list = g_list_prepend (cb_pair->list, key);
}
}
@@ -928,7 +929,7 @@ gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXactio
removed_cb_data.hash = new_instances->variable_names;
removed_cb_data.list = NULL;
g_hash_table_foreach(existing->variable_names, (GHFunc)_find_unreferenced_vars, &removed_cb_data);
- removed_var_names = removed_cb_data.list;
+ removed_var_names = g_list_reverse (removed_cb_data.list);
}
DEBUG("%d removed variables", g_list_length(removed_var_names));
@@ -938,7 +939,7 @@ gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXactio
added_cb_data.hash = existing->variable_names;
added_cb_data.list = NULL;
g_hash_table_foreach(new_instances->variable_names, (GHFunc)_find_unreferenced_vars, &added_cb_data);
- added_var_names = added_cb_data.list;
+ added_var_names = g_list_reverse (added_cb_data.list);
}
DEBUG("%d added variables", g_list_length(added_var_names));
@@ -1556,7 +1557,7 @@ gnc_sx_instance_model_set_variable(GncSxInstanceModel *model,
static void
_list_from_hash_elts(gpointer key, gpointer value, GList **result_list)
{
- *result_list = g_list_append(*result_list, value);
+ *result_list = g_list_prepend (*result_list, value);
}
GList*
@@ -1584,7 +1585,7 @@ gnc_sx_instance_model_check_variables(GncSxInstanceModel *model)
GncSxVariableNeeded *need = g_new0(GncSxVariableNeeded, 1);
need->instance = inst;
need->variable = var;
- rtn = g_list_append(rtn, need);
+ rtn = g_list_prepend (rtn, need);
}
}
g_list_free(var_list);
commit b94164e8ffca14cb9294d3c5efc2d7ebcd1cbdc8
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Mon Aug 8 12:59:50 2022 +0800
[gnc-tree-view-price] prepend GList loops instead of append
diff --git a/gnucash/gnome-utils/gnc-tree-view-price.c b/gnucash/gnome-utils/gnc-tree-view-price.c
index 77a42457e..abe5302d4 100644
--- a/gnucash/gnome-utils/gnc-tree-view-price.c
+++ b/gnucash/gnome-utils/gnc-tree-view-price.c
@@ -762,7 +762,7 @@ get_selected_prices_helper (GtkTreeModel *s_model,
price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model),
&iter);
if (price)
- *return_list = g_list_append(*return_list, price);
+ *return_list = g_list_prepend (*return_list, price);
}
/*
@@ -780,7 +780,7 @@ gnc_tree_view_price_get_selected_prices (GncTreeViewPrice *view)
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
gtk_tree_selection_selected_foreach(selection, get_selected_prices_helper, &return_list);
- return return_list;
+ return g_list_reverse (return_list);
}
static void
@@ -805,7 +805,7 @@ get_selected_commodity_helper (GtkTreeModel *s_model,
commodity = gnc_tree_model_price_get_commodity (GNC_TREE_MODEL_PRICE(model), &iter);
if (commodity)
- *return_list = g_list_append(*return_list, commodity);
+ *return_list = g_list_prepend (*return_list, commodity);
}
/*
@@ -824,5 +824,5 @@ gnc_tree_view_price_get_selected_commodities (GncTreeViewPrice *view)
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
gtk_tree_selection_selected_foreach (selection, get_selected_commodity_helper, &return_list);
- return return_list;
+ return g_list_reverse (return_list);
}
commit b4d3d4952d41782cf09e884c1df751e26549a445
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Mon Aug 8 12:59:42 2022 +0800
[gnc-tree-model-split-reg] prepend GList loops instead of append
diff --git a/gnucash/gnome-utils/gnc-tree-model-split-reg.c b/gnucash/gnome-utils/gnc-tree-model-split-reg.c
index c333b48b0..8f911df38 100644
--- a/gnucash/gnome-utils/gnc-tree-model-split-reg.c
+++ b/gnucash/gnome-utils/gnc-tree-model-split-reg.c
@@ -516,7 +516,7 @@ gtm_sr_foreach_func (GtkTreeModel *model,
g_assert ( rowref_list != NULL );
rowref = gtk_tree_row_reference_new (model, path);
- *rowref_list = g_list_append (*rowref_list, rowref);
+ *rowref_list = g_list_prepend (*rowref_list, rowref);
return FALSE; /* do not stop walking the store, call us with next row */
}
@@ -530,8 +530,6 @@ gtm_sr_remove_all_rows (GncTreeModelSplitReg *model)
gtk_tree_model_foreach (GTK_TREE_MODEL(model), (GtkTreeModelForeachFunc)gtm_sr_foreach_func, &rr_list);
- rr_list = g_list_reverse (rr_list);
-
for ( node = rr_list; node != NULL; node = node->next )
{
GtkTreePath *path;
Summary of changes:
gnucash/gnome-utils/gnc-tree-model-split-reg.c | 4 +---
gnucash/gnome-utils/gnc-tree-view-price.c | 8 ++++----
libgnucash/app-utils/gnc-sx-instance-model.c | 27 ++++++++++++++------------
3 files changed, 20 insertions(+), 19 deletions(-)
More information about the gnucash-changes
mailing list