104 lines
2.8 KiB
Diff
104 lines
2.8 KiB
Diff
From ef54af3c33b1e779a3fc11ff5925ffe07c137958 Mon Sep 17 00:00:00 2001
|
|
From: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
|
|
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 <wangxiaoqing@kylinsec.com.cn>
|
|
---
|
|
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
|
|
|