background: don't leak wall clock when background changes

The background code allocates a GnomeWallClock when its first created,
but neglects to drop a reference to that clock at destroy time.
The undestroyed clocks lead to a timerfd leak that eventually prevents
the shell from functioning.

https://bugzilla.gnome.org/show_bug.cgi?id=791655
This commit is contained in:
Ray Strode 2017-12-15 10:05:34 -05:00
parent 989c7bf27e
commit 94b96f8d97

View File

@ -289,6 +289,8 @@ var Background = new Lang.Class({
this._clock.disconnect(this._timezoneChangedId); this._clock.disconnect(this._timezoneChangedId);
this._timezoneChangedId = 0; this._timezoneChangedId = 0;
this._clock = null;
if (this._prepareForSleepId != 0) if (this._prepareForSleepId != 0)
LoginManager.getLoginManager().disconnect(this._prepareForSleepId); LoginManager.getLoginManager().disconnect(this._prepareForSleepId);
this._prepareForSleepId = 0; this._prepareForSleepId = 0;