Re: [PATCH 08/66] kconfig: gconf: always destroy dialog in on_window1_delete_event()

From: Randy Dunlap
Date: Sun Jun 29 2025 - 22:23:26 EST




On 6/24/25 8:04 AM, Masahiro Yamada wrote:
> When gtk_dialog_run() returns GTK_RESPONSE_YES or GTK_RESPONSE_NO,
> gtk_widget_destroy() is not called, resulting is 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@xxxxxxxxxx>

Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>

> ---
>
> scripts/kconfig/gconf.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
> index 769f38307f34..52d439a5119b 100644
> --- a/scripts/kconfig/gconf.c
> +++ b/scripts/kconfig/gconf.c
> @@ -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;
> }
>
>

--
~Randy