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 (&current_time);
     tm_returned = gnc_localtime_r (&current_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