gnucash stable: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Tue Nov 18 18:34:27 EST 2025
Updated via https://github.com/Gnucash/gnucash/commit/20575991 (commit)
via https://github.com/Gnucash/gnucash/commit/052e120a (commit)
via https://github.com/Gnucash/gnucash/commit/88f77efa (commit)
via https://github.com/Gnucash/gnucash/commit/fbd4a86f (commit)
from https://github.com/Gnucash/gnucash/commit/7c73e2ab (commit)
commit 20575991f16ddd5e19df32dc3c3924d671d9ab26
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Nov 19 03:04:53 2025 +0800
[search-param.c] free GSList
diff --git a/gnucash/gnome-utils/search-param.c b/gnucash/gnome-utils/search-param.c
index 75fabaa21a..a2320feed6 100644
--- a/gnucash/gnome-utils/search-param.c
+++ b/gnucash/gnome-utils/search-param.c
@@ -429,6 +429,7 @@ gnc_search_param_prepend_internal (GList *list, char const *title,
/* put the path into the right order, and set it */
path = g_slist_reverse (path);
gnc_search_param_set_param_path (p, search_type, path);
+ g_slist_free (path);
/* Maybe over-ride the type */
if (type_override)
commit 052e120abf7bce0b66112fd35fa24234b1702243
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Nov 19 02:56:41 2025 +0800
[gnucash-sheet.c] plug some leaks
diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index f5734a8c34..eccdc249af 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -2446,6 +2446,15 @@ gnucash_sheet_tooltip (GtkWidget *widget, gint x, gint y,
return TRUE;
}
+static void
+dimensions_destroy (BlockDimensions *dimensions)
+{
+ if (dimensions)
+ {
+ g_table_destroy (dimensions->cell_dimensions);
+ g_free (dimensions);
+ }
+}
GtkWidget *
gnucash_sheet_new (Table *table)
@@ -2468,7 +2477,7 @@ gnucash_sheet_new (Table *table)
/* some register data */
sheet->dimensions_hash_table = g_hash_table_new_full (g_int_hash,
g_int_equal,
- g_free, g_free);
+ g_free, (GDestroyNotify)dimensions_destroy);
/* add tooltips to sheet */
gtk_widget_set_has_tooltip (GTK_WIDGET(sheet), TRUE);
commit 88f77efa4356f37bb3f9f2b5b958816b6d4c9b47
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Nov 19 02:56:21 2025 +0800
[gnc-date-edit.c] plug some leaks
diff --git a/gnucash/gnome-utils/gnc-date-edit.c b/gnucash/gnome-utils/gnc-date-edit.c
index c31f31d11e..dabed64afc 100644
--- a/gnucash/gnome-utils/gnc-date-edit.c
+++ b/gnucash/gnome-utils/gnc-date-edit.c
@@ -455,6 +455,8 @@ fill_time_combo (GtkWidget *widget, GNCDateEdit *gde)
model = gtk_combo_box_get_model (GTK_COMBO_BOX(gde->time_combo));
+ gtk_tree_store_clear (GTK_TREE_STORE(model));
+
gnc_time (¤t_time);
tm_returned = gnc_localtime_r (¤t_time, &mtm);
g_return_if_fail(tm_returned != NULL);
commit fbd4a86f5a3da434429048cc9524994c129fdb01
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Nov 19 02:35:34 2025 +0800
g_object_unref to plug some leaks
diff --git a/gnucash/gnome/reconcile-view.c b/gnucash/gnome/reconcile-view.c
index c52473f8c9..3d9eef0bb2 100644
--- a/gnucash/gnome/reconcile-view.c
+++ b/gnucash/gnome/reconcile-view.c
@@ -784,7 +784,7 @@ gnc_reconcile_view_finalize (GObject *object)
{
GNCReconcileView *view = GNC_RECONCILE_VIEW(object);
- g_list_free (view->column_list);
+ g_list_free_full (view->column_list, g_object_unref);
if (view->reconciled != NULL)
{
g_hash_table_destroy (view->reconciled);
diff --git a/gnucash/gnome/window-reconcile.cpp b/gnucash/gnome/window-reconcile.cpp
index 19c0947750..4477902807 100644
--- a/gnucash/gnome/window-reconcile.cpp
+++ b/gnucash/gnome/window-reconcile.cpp
@@ -83,6 +83,7 @@ struct _RecnWindow
GtkBuilder *builder; /* The builder object */
GSimpleActionGroup *simple_action_group; /* The action group for the window */
+ GtkAccelGroup *accel_group;
GncPluginPage *page;
@@ -1899,10 +1900,10 @@ recnWindowWithBalance (GtkWidget *parent, Account *account, gnc_numeric new_endi
GtkToolbar *tool_bar;
GMenuModel *menu_model;
GtkWidget *menu_bar;
- GtkAccelGroup *accel_group = gtk_accel_group_new ();
const gchar *ui = GNUCASH_RESOURCE_PREFIX "/gnc-reconcile-window.ui";
GError *error = NULL;
+ recnData->accel_group = gtk_accel_group_new ();
recnData->builder = gtk_builder_new ();
gtk_builder_add_from_resource (recnData->builder, ui, &error);
@@ -1938,10 +1939,10 @@ recnWindowWithBalance (GtkWidget *parent, Account *account, gnc_numeric new_endi
gtk_container_add (GTK_CONTAINER(vbox), GTK_WIDGET(tool_bar));
- gtk_window_add_accel_group (GTK_WINDOW(recnData->window), accel_group);
+ gtk_window_add_accel_group (GTK_WINDOW(recnData->window), recnData->accel_group);
// need to add the accelerator keys
- gnc_add_accelerator_keys_for_menu (menu_bar, menu_model, accel_group);
+ gnc_add_accelerator_keys_for_menu (menu_bar, menu_model, recnData->accel_group);
#ifdef MAC_INTEGRATION
gtkosx_application_sync_menubar (theApp);
@@ -2229,6 +2230,12 @@ recn_destroy_cb (GtkWidget *w, gpointer data)
if (recnData->delete_refresh)
gnc_resume_gui_refresh ();
+ if (recnData->builder)
+ g_object_unref(recnData->builder);
+
+ if (recnData->accel_group)
+ g_object_unref(recnData->accel_group);
+
//Disable the actions, the handlers try to access recnData
for (gint i = 0; i < num_actions; i++)
{
Summary of changes:
gnucash/gnome-utils/gnc-date-edit.c | 2 ++
gnucash/gnome-utils/search-param.c | 1 +
gnucash/gnome/reconcile-view.c | 2 +-
gnucash/gnome/window-reconcile.cpp | 13 ++++++++++---
gnucash/register/register-gnome/gnucash-sheet.c | 11 ++++++++++-
5 files changed, 24 insertions(+), 5 deletions(-)
More information about the gnucash-changes
mailing list