From ef54af3c33b1e779a3fc11ff5925ffe07c137958 Mon Sep 17 00:00:00 2001 From: wangxiaoqing Date: Thu, 1 Dec 2022 11:21:44 +0800 Subject: [PATCH] fix(tray): Fix memory leak due to notification area. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复由于通知区域导致内存泄漏的问题 Closes #I63Q6H Signed-off-by: wangxiaoqing --- src/tray/kiran-notify-icon-window.c | 3 +++ src/tray/kiran-sn-icon.c | 4 ++++ src/tray/kiran-tray.c | 2 ++ src/tray/kiran-x11-tray-icon.cpp | 6 +----- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/tray/kiran-notify-icon-window.c b/src/tray/kiran-notify-icon-window.c index 07fe89a..37381f4 100644 --- a/src/tray/kiran-notify-icon-window.c +++ b/src/tray/kiran-notify-icon-window.c @@ -198,6 +198,7 @@ kiran_notify_icon_window_focus_in_event(GtkWidget *widget, break; } } + g_list_free(children); } return FALSE; @@ -232,6 +233,7 @@ kiran_notify_icon_window_focus_out_event(GtkWidget *widget, break; } } + g_list_free(children); return FALSE; } @@ -415,6 +417,7 @@ kiran_notify_icon_window_icons_refresh(KiranNotifyIconWindow *window, } gtk_widget_set_size_request(GTK_WIDGET(window), max_row * 40, (row + 1) * 40); + g_list_free(children); } static void diff --git a/src/tray/kiran-sn-icon.c b/src/tray/kiran-sn-icon.c index f312458..a36040d 100644 --- a/src/tray/kiran-sn-icon.c +++ b/src/tray/kiran-sn-icon.c @@ -542,6 +542,10 @@ update(KiranSnIcon *icon) } gtk_image_set_from_surface(GTK_IMAGE(priv->image), surface); + if(surface) + { + cairo_surface_destroy(surface); + } g_free(priv->icon); priv->icon = g_strdup(priv->icon_name); } diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c index c169a1e..9b40d96 100644 --- a/src/tray/kiran-tray.c +++ b/src/tray/kiran-tray.c @@ -227,6 +227,7 @@ gsettings_changed_panel_icon_ids(GSettings *settings, g_strfreev(panel_icon_ids); } + g_list_free(children); } static void @@ -494,6 +495,7 @@ kiran_tray_icons_refresh(KiranTray *tray) NULL); col++; } + g_list_free(children); } static void diff --git a/src/tray/kiran-x11-tray-icon.cpp b/src/tray/kiran-x11-tray-icon.cpp index b31a97b..63e6a80 100644 --- a/src/tray/kiran-x11-tray-icon.cpp +++ b/src/tray/kiran-x11-tray-icon.cpp @@ -535,11 +535,7 @@ kiran_x11_tray_icon_new(Window icon_window) icon->priv->has_desktop = FALSE; } } - else - { - g_free(res_name); - } - + g_free(res_name); g_free(res_class); return GTK_WIDGET(icon); -- 2.36.1