diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2013-12-06 14:29:20 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2013-12-10 16:25:11 +0100 |
commit | 229ed6537c82a11a408a4fbfa2f9809b8aa0c8e9 (patch) | |
tree | d67c7e7dbe3b2a0175a8911f13e1fbc5a2835dbe | |
parent | 935a0b13065d8bf8aa77a922f7db911689e20942 (diff) | |
download | gnome-settings-daemon-229ed6537c82a11a408a4fbfa2f9809b8aa0c8e9.tar.gz |
power: bail out early if the GnomeRRScreen could not be created
This may happen in the case gnome-shell is not running when g-s-d starts
up. This fixes a crash in such situation, as priv->rr_screen was assumed
to exist soon after.
https://bugzilla.gnome.org/show_bug.cgi?id=719974
-rw-r--r-- | plugins/power/gsd-power-manager.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c index 1f1d12ea..be1e127b 100644 --- a/plugins/power/gsd-power-manager.c +++ b/plugins/power/gsd-power-manager.c @@ -2257,10 +2257,19 @@ on_rr_screen_acquired (GObject *object, gpointer user_data) { GsdPowerManager *manager = user_data; + GError *error = NULL; gnome_settings_profile_start (NULL); - manager->priv->rr_screen = gnome_rr_screen_new_finish (result, NULL); + manager->priv->rr_screen = gnome_rr_screen_new_finish (result, &error); + + if (error) { + g_warning ("Could not create GnomeRRScreen: %s\n", error->message); + g_error_free (error); + gnome_settings_profile_end (NULL); + + return; + } /* set up the screens */ if (manager->priv->lid_is_present) { |