From ca3c09c5f644d0f2f94fb53aa931445631514cab Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Mon, 27 Nov 2023 20:53:56 +0800 Subject: [PATCH] [dialog-report-column-view.cpp] new/delete instead of g_new/g_free because the struct has vector objects which would otherwise leak. --- gnucash/gnome/dialog-report-column-view.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnucash/gnome/dialog-report-column-view.cpp b/gnucash/gnome/dialog-report-column-view.cpp index 10f772b8ba..fcd6ab988e 100644 --- a/gnucash/gnome/dialog-report-column-view.cpp +++ b/gnucash/gnome/dialog-report-column-view.cpp @@ -61,7 +61,7 @@ using StrVec = std::vector; struct gncp_column_view_edit { - GncOptionsDialog * optwin; + std::unique_ptr optwin; GtkTreeView * available; GtkTreeView * contents; @@ -103,10 +103,9 @@ gnc_column_view_set_option(GncOptionDB* odb, const char* section, static void gnc_column_view_edit_destroy(gnc_column_view_edit * view) { - delete view->optwin; scm_gc_unprotect_object(view->view); gnc_option_db_destroy(view->odb); - g_free(view); + delete view; } static StrVec @@ -322,10 +321,10 @@ gnc_column_view_edit_options(GncOptionDB* odb, SCM view) } else { - gnc_column_view_edit * r = g_new0(gnc_column_view_edit, 1); + auto r = new gnc_column_view_edit; GtkBuilder *builder; - r->optwin = new GncOptionsDialog(nullptr, GTK_WINDOW(gnc_ui_get_main_window (nullptr))); + r->optwin = std::make_unique(nullptr, GTK_WINDOW(gnc_ui_get_main_window (nullptr))); /* Hide the generic dialog page list. */ gtk_widget_hide(r->optwin->get_page_list());