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.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/44
This commit is contained in:
Florian Müllner
2018-01-17 22:48:45 +01:00
parent 39274f286c
commit 3284fe81d7
+6 -2
View File
@@ -136,10 +136,11 @@ class RootInfo extends PlaceInfo {
let busName = 'org.freedesktop.hostname1';
let objPath = '/org/freedesktop/hostname1';
this._proxy = new Hostname1(Gio.DBus.system, busName, objPath, (obj, error) => {
new Hostname1(Gio.DBus.system, busName, objPath, (obj, error) => {
if (error)
return;
this._proxy = obj;
this._proxy.connect('g-properties-changed',
this._propertiesChanged.bind(this));
this._propertiesChanged(obj);
@@ -160,7 +161,10 @@ class RootInfo extends PlaceInfo {
}
destroy() {
this._proxy.run_dispose();
if (this._proxy) {
this._proxy.run_dispose();
this._proxy = null;
}
super.destroy();
}
};