[gimp/gimp-2-10] app: clear the clipboard after storing its contents, upon quitting.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] app: clear the clipboard after storing its contents, upon quitting.
- Date: Wed, 6 May 2020 17:28:01 +0000 (UTC)
commit ef217108a668ba6b8e4c82c0fde8c82d9deffc5c
Author: Jehan <jehan girinstud io>
Date: Wed May 6 15:41:19 2020 +0200
app: clear the clipboard after storing its contents, upon quitting.
If we don't do this, the clipboard owner doesn't get unreffed (also the
GtkClipboardClearFunc is not called either, but we don't set any so this
was not a big problem).
The main consequence was that copying was setting the Gimp object as an
owner, which kept a reference and prevent its finalize() method to run,
hence was leaking data (and in particular some GEGL buffers for
clipboard operations, which was how the issue became more visible upon
exit).
(cherry picked from commit fca6371e29162d33d8e59a9e28fe698ff6157198)
app/widgets/gimpclipboard.c | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --git a/app/widgets/gimpclipboard.c b/app/widgets/gimpclipboard.c
index 7f3e58b6a9..4c77de65fc 100644
--- a/app/widgets/gimpclipboard.c
+++ b/app/widgets/gimpclipboard.c
@@ -134,6 +134,12 @@ gimp_clipboard_exit (Gimp *gimp)
gtk_clipboard_store (clipboard);
}
+ if (clipboard)
+ /* If we don't clear the clipboard, it keeps a reference on the object
+ * owner (i.e. Gimp object probably) which fails to finalize.
+ */
+ gtk_clipboard_clear (clipboard);
+
g_object_set_data (G_OBJECT (gimp), GIMP_CLIPBOARD_KEY, NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]