summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2014-03-30 09:46:08 -0400
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2014-04-01 14:36:59 +0100
commitd76bd45e74976299534379564cadc2982e994372 (patch)
treeb4e267a4b3ec729919c3d0563625e9f34e0ffd73
parentede7492b3f7a4c88b6745599ec1ff37969c8354c (diff)
downloadtelepathy-glib-d76bd45e74976299534379564cadc2982e994372.tar.gz
TpProxy: Assert that we have a factory
We can also deduct the TpDBusDaemon and GDBusConnection from the factory.
-rw-r--r--telepathy-glib/proxy.c55
1 files changed, 27 insertions, 28 deletions
diff --git a/telepathy-glib/proxy.c b/telepathy-glib/proxy.c
index 2b32b9d41..47242989b 100644
--- a/telepathy-glib/proxy.c
+++ b/telepathy-glib/proxy.c
@@ -816,36 +816,11 @@ tp_proxy_set_property (GObject *object,
{
g_assert (self->priv->dbus_daemon == NULL);
self->priv->dbus_daemon = g_value_dup_object (value);
-
- if (self->priv->dbus_daemon != NULL)
- {
- if (self->priv->dbus_connection == NULL)
- {
- self->priv->dbus_connection = g_object_ref (
- tp_proxy_get_dbus_connection (self->priv->dbus_daemon));
- }
- else
- {
- g_assert (self->priv->dbus_connection ==
- tp_proxy_get_dbus_connection (self->priv->dbus_daemon));
- }
- }
}
break;
case PROP_DBUS_CONNECTION:
- {
- GDBusConnection *conn = g_value_get_object (value);
-
- /* if we're given a NULL dbus-connection, but we've got a
- * GDBusConnection from the dbus-daemon, we want to keep it */
- if (conn == NULL)
- return;
-
- if (self->priv->dbus_connection == NULL)
- self->priv->dbus_connection = g_value_dup_object (value);
-
- g_assert (self->priv->dbus_connection == g_value_get_object (value));
- }
+ g_assert (self->priv->dbus_connection == NULL);
+ self->priv->dbus_connection = g_value_dup_object (value);
break;
case PROP_BUS_NAME:
g_assert (self->priv->bus_name == NULL);
@@ -918,7 +893,6 @@ tp_proxy_constructed (GObject *object)
G_OBJECT_CLASS (tp_proxy_parent_class)->constructed (object);
- g_assert (self->priv->dbus_connection != NULL);
g_assert (self->priv->object_path != NULL);
g_assert (self->priv->bus_name != NULL);
g_assert (tp_dbus_check_valid_object_path (self->priv->object_path, NULL));
@@ -930,6 +904,31 @@ tp_proxy_constructed (GObject *object)
if (klass->must_have_unique_name)
g_assert (g_dbus_is_unique_name (self->priv->bus_name));
+ if (!TP_IS_DBUS_DAEMON (self))
+ {
+ TpDBusDaemon *dbus_daemon;
+ GDBusConnection *dbus_connection;
+
+ g_assert (self->priv->factory != NULL);
+ dbus_daemon = tp_client_factory_get_dbus_daemon (self->priv->factory);
+ dbus_connection = tp_client_factory_get_dbus_connection (
+ self->priv->factory);
+
+ if (self->priv->dbus_daemon == NULL)
+ self->priv->dbus_daemon = g_object_ref (dbus_daemon);
+ else
+ g_assert (self->priv->dbus_daemon == dbus_daemon);
+
+ if (self->priv->dbus_connection == NULL)
+ self->priv->dbus_connection = g_object_ref (dbus_connection);
+ else
+ g_assert (self->priv->dbus_connection == dbus_connection);
+ }
+ else
+ {
+ g_assert (self->priv->dbus_connection != NULL);
+ }
+
DEBUG ("%s:%s -> %s %p", self->priv->bus_name, self->priv->object_path,
G_OBJECT_TYPE_NAME (self), self);