background: don't choke on huge slide show durations

if a slideshow file has a really large duration we'll currently
throw an exception.

This bug is aggravated by the fact that some versions of
gnome-desktop use UINT_MAX as a sentinel value to mean,
"don't ever update slide".

This commit treats durations that would overflow as infinitely
long.

https://bugzilla.gnome.org/show_bug.cgi?id=696157
This commit is contained in:
Ray Strode 2013-03-25 10:42:21 -04:00
parent bed3bb45f7
commit 1dadcee5c9

View File

@ -503,6 +503,10 @@ const Background = new Lang.Class({
let interval = Math.max(ANIMATION_MIN_WAKEUP_INTERVAL * 1000, let interval = Math.max(ANIMATION_MIN_WAKEUP_INTERVAL * 1000,
timePerStep); timePerStep);
if (interval > GLib.MAXUINT32)
return;
this._updateAnimationTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, this._updateAnimationTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
interval, interval,
Lang.bind(this, function() { Lang.bind(this, function() {