[arch-commits] Commit in gtk3/trunk (2 files)
Jan Steffens
heftig at archlinux.org
Tue Oct 6 22:05:59 UTC 2020
Date: Tuesday, October 6, 2020 @ 22:05:58
Author: heftig
Revision: 397452
3.24.23-4: FS#68123 fix krita
Added:
gtk3/trunk/0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch
Modified:
gtk3/trunk/PKGBUILD
-----------------------------------------------------------------+
0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch | 64 ++++++++++
PKGBUILD | 7 -
2 files changed, 70 insertions(+), 1 deletion(-)
Added: 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch
===================================================================
--- 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch (rev 0)
+++ 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch 2020-10-06 22:05:58 UTC (rev 397452)
@@ -0,0 +1,64 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens at gmail.com>
+Date: Tue, 6 Oct 2020 21:14:45 +0000
+Subject: [PATCH] gtkplacessidebar: Disconnect and unref cloud_manager in
+ dispose
+
+The manager's providers-changed signal can fire after the sidebar has
+been freed. Make sure we disconnect the sidebar from the manager.
+
+https://bugs.archlinux.org/task/57984
+https://bugs.archlinux.org/task/68123
+---
+ gtk/gtkplacessidebar.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c
+index 87c08a5389..118739fdd2 100644
+--- a/gtk/gtkplacessidebar.c
++++ b/gtk/gtkplacessidebar.c
+@@ -4411,32 +4411,32 @@ gtk_places_sidebar_dispose (GObject *object)
+ sidebar->shortcuts = NULL;
+
+ #ifdef HAVE_CLOUDPROVIDERS
+- for (l = cloud_providers_collector_get_providers (sidebar->cloud_manager);
+- l != NULL; l = l->next)
+- {
+- g_signal_handlers_disconnect_by_data (l->data, sidebar);
+- }
+ for (l = sidebar->unready_accounts; l != NULL; l = l->next)
+ {
+ g_signal_handlers_disconnect_by_data (l->data, sidebar);
+ }
+ g_list_free_full (sidebar->unready_accounts, g_object_unref);
+ sidebar->unready_accounts = NULL;
++
++ if (sidebar->cloud_manager)
++ {
++ g_signal_handlers_disconnect_by_data (sidebar->cloud_manager, sidebar);
++ for (l = cloud_providers_collector_get_providers (sidebar->cloud_manager);
++ l != NULL; l = l->next)
++ {
++ g_signal_handlers_disconnect_by_data (l->data, sidebar);
++ }
++ g_object_unref (sidebar->cloud_manager);
++ sidebar->cloud_manager = NULL;
++ }
+ #endif
+
+ G_OBJECT_CLASS (gtk_places_sidebar_parent_class)->dispose (object);
+ }
+
+ static void
+ gtk_places_sidebar_finalize (GObject *object)
+ {
+-#ifdef HAVE_CLOUDPROVIDERS
+- GtkPlacesSidebar *sidebar;
+-
+- sidebar = GTK_PLACES_SIDEBAR (object);
+- g_clear_object (&sidebar->cloud_manager);
+-#endif
+-
+ G_OBJECT_CLASS (gtk_places_sidebar_parent_class)->finalize (object);
+ }
+
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2020-10-06 21:50:49 UTC (rev 397451)
+++ PKGBUILD 2020-10-06 22:05:58 UTC (rev 397452)
@@ -4,7 +4,7 @@
pkgbase=gtk3
pkgname=(gtk3 gtk-update-icon-cache)
pkgver=3.24.23
-pkgrel=3
+pkgrel=4
epoch=1
pkgdesc="GObject-based multi-platform GUI toolkit"
arch=(x86_64)
@@ -18,11 +18,13 @@
license=(LGPL)
_commit=016e8c55ab924c9ef4d32c8cb06253b1dc1be60d # tags/3.24.23^0
source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit"
+ 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch
settings.ini
gtk-query-immodules-3.0.hook
gtk-update-icon-cache.hook
gtk-update-icon-cache.script)
sha256sums=('SKIP'
+ 'd6f6bf347482553bc20a1640c1619f674520b853a5b2ade9fd56bb77bfdfe170'
'01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202'
'a0319b6795410f06d38de1e8695a9bf9636ff2169f40701671580e60a108e229'
'2d435e3bec8b79b533f00f6d04decb1d7c299c6e89b5b175f20be0459f003fe8'
@@ -35,6 +37,9 @@
prepare() {
cd gtk
+
+ # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2669
+ git apply -3 ../0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch
}
build() {
More information about the arch-commits
mailing list