diff options
author | Alberto Mardegan <alberto.mardegan@nokia.com> | 2009-11-20 12:29:55 +0200 |
---|---|---|
committer | Alberto Mardegan <alberto.mardegan@nokia.com> | 2009-11-20 15:58:09 +0200 |
commit | c0b5f7f587bf2b80021325624615525853327dc3 (patch) | |
tree | 92dd08ba6fc3bcabdd996833322ff9e4c77bbd30 | |
parent | 04e29b76ca3773cd8baa5b608eace7484bd51bf5 (diff) | |
download | telepathy-mission-control-c0b5f7f587bf2b80021325624615525853327dc3.tar.gz |
When manager instrospection fails, dispose the manager.
-rw-r--r-- | src/mcd-account.c | 4 | ||||
-rw-r--r-- | src/mcd-manager.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/mcd-account.c b/src/mcd-account.c index 2fcb200e..f10a809c 100644 --- a/src/mcd-account.c +++ b/src/mcd-account.c @@ -549,6 +549,10 @@ static void on_manager_ready (McdManager *manager, const GError *error, if (error) { DEBUG ("got error: %s", error->message); + + /* we are not interested in the manager anymore */ + g_object_unref (priv->manager); + priv->manager = NULL; } else { diff --git a/src/mcd-manager.c b/src/mcd-manager.c index ef9563dd..1b1a5f42 100644 --- a/src/mcd-manager.c +++ b/src/mcd-manager.c @@ -91,6 +91,12 @@ on_manager_ready (TpConnectionManager *tp_conn_mgr, const GError *error, DEBUG ("manager %s is ready", priv->name); priv->ready = TRUE; _mcd_object_ready (manager, readiness_quark, error); + + if (error) + { + /* if instrospection failed, this object is useless: abort it */ + mcd_mission_abort (MCD_MISSION (manager)); + } } static gint |