[dialog-report-column-view.cpp] new/delete instead of g_new/g_free

because the struct has vector objects which would otherwise leak.
This commit is contained in:
Christopher Lam 2023-11-27 20:53:56 +08:00
parent 3863d6e8dc
commit ca3c09c5f6

View File

@ -61,7 +61,7 @@ using StrVec = std::vector<std::string>;
struct gncp_column_view_edit struct gncp_column_view_edit
{ {
GncOptionsDialog * optwin; std::unique_ptr<GncOptionsDialog> optwin;
GtkTreeView * available; GtkTreeView * available;
GtkTreeView * contents; GtkTreeView * contents;
@ -103,10 +103,9 @@ gnc_column_view_set_option(GncOptionDB* odb, const char* section,
static void static void
gnc_column_view_edit_destroy(gnc_column_view_edit * view) gnc_column_view_edit_destroy(gnc_column_view_edit * view)
{ {
delete view->optwin;
scm_gc_unprotect_object(view->view); scm_gc_unprotect_object(view->view);
gnc_option_db_destroy(view->odb); gnc_option_db_destroy(view->odb);
g_free(view); delete view;
} }
static StrVec static StrVec
@ -322,10 +321,10 @@ gnc_column_view_edit_options(GncOptionDB* odb, SCM view)
} }
else else
{ {
gnc_column_view_edit * r = g_new0(gnc_column_view_edit, 1); auto r = new gnc_column_view_edit;
GtkBuilder *builder; GtkBuilder *builder;
r->optwin = new GncOptionsDialog(nullptr, GTK_WINDOW(gnc_ui_get_main_window (nullptr))); r->optwin = std::make_unique<GncOptionsDialog>(nullptr, GTK_WINDOW(gnc_ui_get_main_window (nullptr)));
/* Hide the generic dialog page list. */ /* Hide the generic dialog page list. */
gtk_widget_hide(r->optwin->get_page_list()); gtk_widget_hide(r->optwin->get_page_list());