[gnome-settings-daemon] media-keys: Be more careful when finalizing
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] media-keys: Be more careful when finalizing
- Date: Fri, 20 Jan 2012 14:01:53 +0000 (UTC)
commit 42f9427729d763e7fd62aec9e15b036531489682
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jan 20 09:00:54 2012 -0500
media-keys: Be more careful when finalizing
The keys array is initalized in an idle, so if we go right back down
because another instance of gsd is already running, we crash in
finalize, trying to clear a nonexisting array.
plugins/media-keys/gsd-media-keys-manager.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 14ff09f..61e3a56 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -2209,16 +2209,18 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager)
gdk_error_trap_push ();
- for (i = 0; i < priv->keys->len; ++i) {
- MediaKey *key;
+ if (priv->keys != NULL) {
+ for (i = 0; i < priv->keys->len; ++i) {
+ MediaKey *key;
- key = g_ptr_array_index (manager->priv->keys, i);
+ key = g_ptr_array_index (manager->priv->keys, i);
- if (key->key)
- grab_key_unsafe (key->key, FALSE, priv->screens);
+ if (key->key)
+ grab_key_unsafe (key->key, FALSE, priv->screens);
+ }
+ g_ptr_array_free (priv->keys, TRUE);
+ priv->keys = NULL;
}
- g_ptr_array_free (priv->keys, TRUE);
- priv->keys = NULL;
gdk_flush ();
gdk_error_trap_pop_ignored ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]