kconfig: gconf: always destroy dialog in on_window1_delete_event()

When gtk_dialog_run() returns GTK_RESPONSE_YES or GTK_RESPONSE_NO,
gtk_widget_destroy() is not called, resulting in a memory leak.

It is better to always destroy the dialog, even if the application
is about to exit.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
This commit is contained in:
Masahiro Yamada 2025-06-25 00:04:56 +09:00
parent f72ed4c6a3
commit 02bb13bd6c

View File

@ -378,6 +378,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
{
GtkWidget *dialog, *label;
gint result;
gint ret = FALSE;
if (!conf_get_changed())
return FALSE;
@ -404,17 +405,19 @@ gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
switch (result) {
case GTK_RESPONSE_YES:
on_save_activate(NULL, NULL);
return FALSE;
break;
case GTK_RESPONSE_NO:
return FALSE;
break;
case GTK_RESPONSE_CANCEL:
case GTK_RESPONSE_DELETE_EVENT:
default:
gtk_widget_destroy(dialog);
return TRUE;
ret = TRUE;
break;
}
return FALSE;
gtk_widget_destroy(dialog);
return ret;
}