aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-chat.c5
-rw-r--r--libempathy/empathy-tp-chat.c47
-rw-r--r--libempathy/empathy-tp-chat.h1
-rw-r--r--src/empathy-chat-window.c2
-rw-r--r--src/empathy-invite-participant-dialog.c2
5 files changed, 27 insertions, 30 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index ef4d7a53d..cf3336bdf 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -700,7 +700,7 @@ nick_command_supported (EmpathyChat *chat)
EmpathyChatPriv * priv = GET_PRIV (chat);
TpConnection *connection;
- connection = empathy_tp_chat_get_connection (priv->tp_chat);
+ connection = tp_channel_borrow_connection (TP_CHANNEL (priv->tp_chat));
return tp_proxy_has_interface_by_id (connection,
EMP_IFACE_QUARK_CONNECTION_INTERFACE_RENAMING);
}
@@ -975,7 +975,7 @@ chat_command_whois (EmpathyChat *chat,
EmpathyChatPriv *priv = GET_PRIV (chat);
TpConnection *conn;
- conn = empathy_tp_chat_get_connection (priv->tp_chat);
+ conn = tp_channel_borrow_connection ((TpChannel *) priv->tp_chat);
tp_connection_get_contacts_by_id (conn,
/* Element 0 of 'strv' is "whois"; element 1 is the contact ID
* entered by the user (including spaces, if any). */
@@ -3636,7 +3636,6 @@ empathy_chat_set_tp_chat (EmpathyChat *chat,
g_return_if_fail (EMPATHY_IS_CHAT (chat));
g_return_if_fail (EMPATHY_IS_TP_CHAT (tp_chat));
- g_return_if_fail (empathy_tp_chat_is_ready (tp_chat));
if (priv->tp_chat) {
return;
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index d1338f2bf..b33b41e48 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -41,7 +41,6 @@
struct _EmpathyTpChatPrivate {
gboolean dispose_has_run;
TpAccount *account;
- TpConnection *connection;
EmpathyContact *user;
EmpathyContact *remote_contact;
GList *members;
@@ -331,7 +330,10 @@ tp_chat_build_message (EmpathyTpChat *self,
empathy_message_set_sender (message, self->priv->user);
tp_chat_emit_queued_messages (self);
} else {
- empathy_tp_contact_factory_get_from_handle (self->priv->connection,
+ TpConnection *connection = tp_channel_borrow_connection (
+ (TpChannel *) self);
+
+ empathy_tp_contact_factory_get_from_handle (connection,
tp_contact_get_handle (sender),
tp_chat_got_sender_cb,
message, NULL, G_OBJECT (self));
@@ -572,7 +574,10 @@ tp_chat_state_changed_cb (TpChannel *channel,
TpChannelChatState state,
EmpathyTpChat *self)
{
- empathy_tp_contact_factory_get_from_handle (self->priv->connection, handle,
+ TpConnection *connection = tp_channel_borrow_connection (
+ (TpChannel *) self);
+
+ empathy_tp_contact_factory_get_from_handle (connection, handle,
tp_chat_state_changed_got_contact_cb, GUINT_TO_POINTER (state),
NULL, G_OBJECT (self));
}
@@ -823,10 +828,6 @@ tp_chat_dispose (GObject *object)
tp_clear_object (&self->priv->account);
- if (self->priv->connection != NULL)
- g_object_unref (self->priv->connection);
- self->priv->connection = NULL;
-
if (self->priv->remote_contact != NULL)
g_object_unref (self->priv->remote_contact);
self->priv->remote_contact = NULL;
@@ -1141,6 +1142,8 @@ tp_chat_group_members_changed_cb (TpChannel *channel,
guint i;
ContactRenameData *rename_data;
TpHandle old_handle;
+ TpConnection *connection = tp_channel_borrow_connection (
+ (TpChannel *) self);
/* Contact renamed */
if (reason == TP_CHANNEL_GROUP_CHANGE_REASON_RENAMED) {
@@ -1154,7 +1157,7 @@ tp_chat_group_members_changed_cb (TpChannel *channel,
old_handle = g_array_index (removed, guint, 0);
rename_data = contact_rename_data_new (old_handle, reason, message);
- empathy_tp_contact_factory_get_from_handles (self->priv->connection,
+ empathy_tp_contact_factory_get_from_handles (connection,
added->len, (TpHandle *) added->data,
tp_chat_got_renamed_contacts_cb,
rename_data, (GDestroyNotify) contact_rename_data_free,
@@ -1188,7 +1191,7 @@ tp_chat_group_members_changed_cb (TpChannel *channel,
/* Request added contacts */
if (added->len > 0) {
- empathy_tp_contact_factory_get_from_handles (self->priv->connection,
+ empathy_tp_contact_factory_get_from_handles (connection,
added->len, (TpHandle *) added->data,
tp_chat_got_added_contacts_cb, NULL, NULL,
G_OBJECT (self));
@@ -1322,17 +1325,20 @@ tp_chat_constructor (GType type,
EmpathyTpChat *self;
TpHandle handle;
TpChannel *channel;
+ TpConnection *connection;
+
object = G_OBJECT_CLASS (empathy_tp_chat_parent_class)->constructor (type, n_props, props);
self = (EmpathyTpChat *) object;
channel = (TpChannel *) object;
- self->priv->connection = g_object_ref (tp_account_get_connection (self->priv->account));
+ connection = tp_channel_borrow_connection (channel);
+
tp_g_signal_connect_object (self, "invalidated",
G_CALLBACK (tp_chat_invalidated_cb),
self, 0);
- g_assert (tp_proxy_is_prepared (self->priv->connection,
+ g_assert (tp_proxy_is_prepared (connection,
TP_CONNECTION_FEATURE_CAPABILITIES));
if (tp_proxy_has_interface_by_id (self,
@@ -1342,14 +1348,14 @@ tp_chat_constructor (GType type,
/* Get self contact from the group's self handle */
handle = tp_channel_group_get_self_handle (channel);
- empathy_tp_contact_factory_get_from_handle (self->priv->connection,
+ empathy_tp_contact_factory_get_from_handle (connection,
handle, tp_chat_got_self_contact_cb,
NULL, NULL, object);
/* Get initial member contacts */
members = tp_channel_group_get_members (channel);
handles = tp_intset_to_array (members);
- empathy_tp_contact_factory_get_from_handles (self->priv->connection,
+ empathy_tp_contact_factory_get_from_handles (connection,
handles->len, (TpHandle *) handles->data,
tp_chat_got_added_contacts_cb, NULL, NULL, object);
@@ -1363,18 +1369,18 @@ tp_chat_constructor (GType type,
guint i;
/* Get the self contact from the connection's self handle */
- handle = tp_connection_get_self_handle (self->priv->connection);
- empathy_tp_contact_factory_get_from_handle (self->priv->connection,
+ handle = tp_connection_get_self_handle (connection);
+ empathy_tp_contact_factory_get_from_handle (connection,
handle, tp_chat_got_self_contact_cb,
NULL, NULL, object);
/* Get the remote contact */
handle = tp_channel_get_handle (channel, NULL);
- empathy_tp_contact_factory_get_from_handle (self->priv->connection,
+ empathy_tp_contact_factory_get_from_handle (connection,
handle, tp_chat_got_remote_contact_cb,
NULL, NULL, object);
- caps = tp_connection_get_capabilities (self->priv->connection);
+ caps = tp_connection_get_capabilities (connection);
g_assert (caps != NULL);
classes = tp_capabilities_get_channel_classes (caps);
@@ -1690,13 +1696,6 @@ empathy_tp_chat_get_account (EmpathyTpChat *self)
return self->priv->account;
}
-TpConnection *
-empathy_tp_chat_get_connection (EmpathyTpChat *self)
-{
- g_return_val_if_fail (EMPATHY_IS_TP_CHAT (self), NULL);
-
- return tp_channel_borrow_connection ((TpChannel *) self);
-}
gboolean
empathy_tp_chat_is_ready (EmpathyTpChat *self)
{
diff --git a/libempathy/empathy-tp-chat.h b/libempathy/empathy-tp-chat.h
index f30325432..b5119fc46 100644
--- a/libempathy/empathy-tp-chat.h
+++ b/libempathy/empathy-tp-chat.h
@@ -76,7 +76,6 @@ EmpathyTpChat *empathy_tp_chat_new (TpAccount *account,
const gchar * empathy_tp_chat_get_id (EmpathyTpChat *chat);
EmpathyContact *empathy_tp_chat_get_remote_contact (EmpathyTpChat *chat);
TpAccount * empathy_tp_chat_get_account (EmpathyTpChat *chat);
-TpConnection * empathy_tp_chat_get_connection (EmpathyTpChat *chat);
gboolean empathy_tp_chat_is_ready (EmpathyTpChat *chat);
void empathy_tp_chat_send (EmpathyTpChat *chat,
TpMessage *message);
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index c0d1b1502..01736d75b 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -403,7 +403,7 @@ chat_window_conversation_menu_update (EmpathyChatWindowPriv *priv,
tp_chat = empathy_chat_get_tp_chat (priv->current_chat);
if (tp_chat != NULL) {
- connection = empathy_tp_chat_get_connection (tp_chat);
+ connection = tp_channel_borrow_connection (TP_CHANNEL (tp_chat));
sensitive = empathy_tp_chat_can_add_contact (tp_chat) &&
(tp_connection_get_status (connection, NULL) ==
diff --git a/src/empathy-invite-participant-dialog.c b/src/empathy-invite-participant-dialog.c
index c40bb9458..4a6694690 100644
--- a/src/empathy-invite-participant-dialog.c
+++ b/src/empathy-invite-participant-dialog.c
@@ -130,7 +130,7 @@ get_tp_contact_for_chat (EmpathyInviteParticipantDialog *self,
GList *personas, *l;
TpConnection *chat_conn;
- chat_conn = empathy_tp_chat_get_connection (self->priv->tp_chat);
+ chat_conn = tp_channel_borrow_connection ((TpChannel *) self->priv->tp_chat);
personas = folks_individual_get_personas (individual);