summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2014-06-10 16:14:07 +0200
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2014-06-10 16:14:07 +0200
commit190de711459a51eb236b773a57b0c188ebf1da6a (patch)
tree9a665f3f61efbe9d3cae336ee082dd09fa377c07
parent7a0e57c1d428ded3c22fdc1bc486d7211ddbab9c (diff)
parent224443c1843ab0df7ef8ee1eda0409c35a4745a9 (diff)
Merge branch 'telepathy-mission-control-5.16'HEADmaster
Conflicts: src/mcd-account.c
-rw-r--r--mission-control-plugins/debug.h2
-rw-r--r--src/mcd-account.c30
2 files changed, 27 insertions, 5 deletions
diff --git a/mission-control-plugins/debug.h b/mission-control-plugins/debug.h
index a5c61c00..8d3cec87 100644
--- a/mission-control-plugins/debug.h
+++ b/mission-control-plugins/debug.h
@@ -27,7 +27,7 @@
#define MCP_DEBUG(_type, _fmt, ...) \
G_STMT_START { if (mcp_is_debugging (_type)) \
- g_debug ("%s: " _fmt, G_STRLOC, ##__VA_ARGS__); } G_STMT_END
+ g_debug ("%s: " _fmt, G_STRFUNC, ##__VA_ARGS__); } G_STMT_END
G_BEGIN_DECLS
diff --git a/src/mcd-account.c b/src/mcd-account.c
index 1b2544df..d53c74b2 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -107,6 +107,7 @@ struct _McdAccountPrivate
McdStorage *storage;
TpDBusDaemon *dbus_daemon;
+ gboolean registered;
McdConnectivityMonitor *connectivity;
McdAccountConnectionContext *connection_context;
@@ -562,6 +563,22 @@ get_old_account_data_path (McdAccountPrivate *priv)
static TpStorageRestrictionFlags mcd_account_get_storage_restrictions (
McdAccount *account);
+static void
+unregister_dbus_service (McdAccount *self)
+{
+ DBusGConnection *dbus_connection;
+
+ g_return_if_fail (MCD_IS_ACCOUNT (self));
+
+ if (!self->priv->registered)
+ return;
+
+ dbus_connection = tp_proxy_get_dbus_connection (self->priv->dbus_daemon);
+ dbus_g_connection_unregister_g_object (dbus_connection, (GObject *) self);
+
+ self->priv->registered = FALSE;
+}
+
void
mcd_account_delete_async (McdAccount *account,
McdDBusPropSetFlags flags,
@@ -638,6 +655,8 @@ mcd_account_delete_async (McdAccount *account,
tp_svc_account_emit_removed (account);
}
+ unregister_dbus_service (account);
+
g_task_return_boolean (task, TRUE);
g_object_unref (task);
}
@@ -2781,10 +2800,13 @@ register_dbus_service (McdAccount *self,
dbus_connection = tp_proxy_get_dbus_connection (TP_PROXY (dbus_daemon));
- if (G_LIKELY (dbus_connection))
- dbus_g_connection_register_g_object (dbus_connection,
- self->priv->object_path,
- (GObject *) self);
+ if (G_LIKELY (dbus_connection)) {
+ dbus_g_connection_register_g_object (dbus_connection,
+ self->priv->object_path,
+ (GObject *) self);
+
+ self->priv->registered = TRUE;
+ }
}
/*