[empathy/gnome-2-28] empathy-account-settings: don't cache the TpConnectionManagerProtocol
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy/gnome-2-28] empathy-account-settings: don't cache the TpConnectionManagerProtocol
- Date: Mon, 19 Oct 2009 11:09:36 +0000 (UTC)
commit 32aa948aa160687c968fffaf22a68d8d4df08ec3
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Mon Oct 19 11:58:52 2009 +0100
empathy-account-settings: don't cache the TpConnectionManagerProtocol
The result of tp_connection_manager_get_protocol isn't garanteed to be
valid after the main loop re-entered. We can't cache it in the account
settings and so have to request it each time we need it.
libempathy/empathy-account-settings.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/libempathy/empathy-account-settings.c b/libempathy/empathy-account-settings.c
index 33029a9..ea5a1e6 100644
--- a/libempathy/empathy-account-settings.c
+++ b/libempathy/empathy-account-settings.c
@@ -55,7 +55,6 @@ struct _EmpathyAccountSettingsPriv
gulong account_manager_ready_id;
TpConnectionManager *manager;
- const TpConnectionManagerProtocol *tp_protocol;
EmpathyAccount *account;
gchar *cm_name;
@@ -353,6 +352,7 @@ static void
empathy_account_settings_check_readyness (EmpathyAccountSettings *self)
{
EmpathyAccountSettingsPriv *priv = GET_PRIV (self);
+ const TpConnectionManagerProtocol *tp_protocol;
if (priv->ready)
return;
@@ -380,10 +380,10 @@ empathy_account_settings_check_readyness (EmpathyAccountSettings *self)
g_strdup (empathy_account_get_icon_name (priv->account));
}
- priv->tp_protocol = tp_connection_manager_get_protocol (priv->manager,
+ tp_protocol = tp_connection_manager_get_protocol (priv->manager,
priv->protocol);
- if (priv->tp_protocol == NULL)
+ if (tp_protocol == NULL)
{
priv->manager = NULL;
return;
@@ -396,7 +396,7 @@ empathy_account_settings_check_readyness (EmpathyAccountSettings *self)
priv->required_params = g_array_new (TRUE, FALSE, sizeof (gchar *));
- for (cur = priv->tp_protocol->params; cur->name != NULL; cur++)
+ for (cur = tp_protocol->params; cur->name != NULL; cur++)
{
if (tp_connection_manager_param_is_required (cur))
{
@@ -446,10 +446,16 @@ TpConnectionManagerParam *
empathy_account_settings_get_tp_params (EmpathyAccountSettings *settings)
{
EmpathyAccountSettingsPriv *priv = GET_PRIV (settings);
+ const TpConnectionManagerProtocol *tp_protocol;
+
+ g_return_val_if_fail (priv->manager != NULL, NULL);
+ g_return_val_if_fail (priv->protocol != NULL, NULL);
- g_return_val_if_fail (priv->tp_protocol != NULL, NULL);
+ tp_protocol = tp_connection_manager_get_protocol (priv->manager,
+ priv->protocol);
+ g_return_val_if_fail (tp_protocol != NULL, NULL);
- return priv->tp_protocol->params;
+ return tp_protocol->params;
}
gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]