[gnome-session] [gsm] Properly handle the case where the idle monitor doesn't exist
- From: Vincent Untz <vuntz src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-session] [gsm] Properly handle the case where the idle monitor doesn't exist
- Date: Tue, 28 Jul 2009 22:10:16 +0000 (UTC)
commit 397cca3a9e5a197860a819a4648bf5bd56969afd
Author: Vincent Untz <vuntz gnome org>
Date: Mon Jul 27 18:27:59 2009 +0200
[gsm] Properly handle the case where the idle monitor doesn't exist
The idle monitor can fail to be created in some cases, depending on X.
This was ignored before.
gnome-session/gsm-presence.c | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/gnome-session/gsm-presence.c b/gnome-session/gsm-presence.c
index 809d358..12e37b8 100644
--- a/gnome-session/gsm-presence.c
+++ b/gnome-session/gsm-presence.c
@@ -155,6 +155,10 @@ on_idle_timeout (GSIdleMonitor *monitor,
static void
reset_idle_watch (GsmPresence *presence)
{
+ if (presence->priv->idle_monitor != NULL) {
+ return;
+ }
+
if (presence->priv->idle_watch_id > 0) {
g_debug ("GsmPresence: removing idle watch");
gs_idle_monitor_remove_watch (presence->priv->idle_monitor,
@@ -449,10 +453,18 @@ gsm_presence_finalize (GObject *object)
if (presence->priv->idle_watch_id > 0) {
gs_idle_monitor_remove_watch (presence->priv->idle_monitor,
presence->priv->idle_watch_id);
+ presence->priv->idle_watch_id = 0;
}
- g_free (presence->priv->status_text);
- g_object_unref (presence->priv->idle_monitor);
+ if (presence->priv->status_text != NULL) {
+ g_free (presence->priv->status_text);
+ presence->priv->status_text = NULL;
+ }
+
+ if (presence->priv->idle_monitor != NULL) {
+ g_object_unref (presence->priv->idle_monitor);
+ presence->priv->idle_monitor = NULL;
+ }
G_OBJECT_CLASS (gsm_presence_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]