Avoid frequent tracebacks from the Places menu with gjs >= 1.50.2-3

Closes: #888608
This commit is contained in:
Simon McVittie
2018-01-30 09:11:30 +00:00
parent 44fe593f8a
commit 5c8a19f54f
3 changed files with 67 additions and 0 deletions

3
debian/changelog vendored
View File

@@ -5,6 +5,9 @@ gnome-shell-extensions (3.26.2-3) UNRELEASED; urgency=medium
[ Simon McVittie ]
* d/patches: Re-export with gbp pq export
* d/p/places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch:
Take patch from upstream to avoid frequent tracebacks from the Places
menu with gjs >= 1.50.2-3 (Closes: #888608)
-- Jeremy Bicha <jbicha@debian.org> Fri, 19 Jan 2018 20:44:11 -0500

View File

@@ -0,0 +1,63 @@
From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 17 Jan 2018 21:57:49 +0100
Subject: places-menu: Don't force dispose() of uninitialized proxies
Trying to dispose a proxy object before it has been properly
initialized triggers an "uncatchable exception", which gjs
treats as a fatal error since commit c7bdcaab4. We only have
anything to clean up once the proxy is initialized anyway, so
don't force dispose() before that.
Origin: upstream, 3.26.2, commit:61594afd687bf5883cc39fa79c5fbdb0d4cc9eda
Bug: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/44
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888608
---
extensions/places-menu/placeDisplay.js | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/extensions/places-menu/placeDisplay.js b/extensions/places-menu/placeDisplay.js
index ba316bf..9647d63 100644
--- a/extensions/places-menu/placeDisplay.js
+++ b/extensions/places-menu/placeDisplay.js
@@ -136,17 +136,18 @@ const RootInfo = new Lang.Class({
_init: function() {
this.parent('devices', Gio.File.new_for_path('/'), _("Computer"));
- this._proxy = new Hostname1(Gio.DBus.system,
- 'org.freedesktop.hostname1',
- '/org/freedesktop/hostname1',
- Lang.bind(this, function(obj, error) {
- if (error)
- return;
-
- this._proxy.connect('g-properties-changed',
- Lang.bind(this, this._propertiesChanged));
- this._propertiesChanged(obj);
- }));
+ new Hostname1(Gio.DBus.system,
+ 'org.freedesktop.hostname1',
+ '/org/freedesktop/hostname1',
+ Lang.bind(this, function(obj, error) {
+ if (error)
+ return;
+
+ this._proxy = obj;
+ this._proxy.connect('g-properties-changed',
+ Lang.bind(this, this._propertiesChanged));
+ this._propertiesChanged(obj);
+ }));
},
getIcon: function() {
@@ -163,7 +164,10 @@ const RootInfo = new Lang.Class({
},
destroy: function() {
- this._proxy.run_dispose();
+ if (this._proxy) {
+ this._proxy.run_dispose();
+ this._proxy = null;
+ }
this.parent();
}
});

View File

@@ -1,2 +1,3 @@
places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch
dont-require-nautilus-classic.patch
gnome-session-classic-wrapper-script.patch