diff options
| author | Masahiro Yamada <masahiroy@kernel.org> | 2025-06-24 18:04:56 +0300 |
|---|---|---|
| committer | Masahiro Yamada <masahiroy@kernel.org> | 2025-07-01 14:07:25 +0300 |
| commit | 02bb13bd6c55bffb53de8da1eae87533d332235d (patch) | |
| tree | 0c14ed1d6849606c2c88659e9351351074da30df /scripts | |
| parent | f72ed4c6a375e52a3f4b75615e4a89d29d8acea7 (diff) | |
| download | linux-02bb13bd6c55bffb53de8da1eae87533d332235d.tar.xz | |
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>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/kconfig/gconf.c | 13 |
1 files 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; } |
