telepathy-logger: log-store-pidgin: keep a ref on the account manager
Guillaume Desmottes
gdesmott at kemper.freedesktop.org
Mon Sep 30 02:10:05 PDT 2013
Module: telepathy-logger
Branch: master
Commit: 87eb595b7e5b091e106f0f1893e32a8d9d568915
URL: http://cgit.freedesktop.org/telepathy/telepathy-logger/commit/?id=87eb595b7e5b091e106f0f1893e32a8d9d568915
Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date: Mon Sep 30 10:49:55 2013 +0200
log-store-pidgin: keep a ref on the account manager
---
telepathy-logger/log-store-pidgin.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/telepathy-logger/log-store-pidgin.c b/telepathy-logger/log-store-pidgin.c
index f3e46b8..2f26873 100644
--- a/telepathy-logger/log-store-pidgin.c
+++ b/telepathy-logger/log-store-pidgin.c
@@ -47,6 +47,7 @@
struct _TplLogStorePidginPriv
{
gboolean test_mode;
+ TpAccountManager *account_manager;
gchar *basedir;
};
@@ -129,6 +130,7 @@ tpl_log_store_pidgin_dispose (GObject *self)
{
TplLogStorePidginPriv *priv = TPL_LOG_STORE_PIDGIN (self)->priv;
+ g_clear_object (&priv->account_manager);
g_free (priv->basedir);
priv->basedir = NULL;
@@ -177,6 +179,8 @@ tpl_log_store_pidgin_init (TplLogStorePidgin *self)
{
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
TPL_TYPE_LOG_STORE_PIDGIN, TplLogStorePidginPriv);
+
+ self->priv->account_manager = tp_account_manager_dup ();
}
@@ -477,18 +481,18 @@ log_store_pidgin_get_filenames_for_date (TplLogStore *self,
static TpAccount *
-log_store_pidgin_dup_account (const gchar *filename)
+log_store_pidgin_dup_account (TplLogStorePidgin *self,
+ const gchar *filename)
{
GList *accounts, *l;
TpAccount *account = NULL;
- TpAccountManager *account_manager;
gchar **strv;
guint len;
gchar *protocol, *username, *server = NULL, *tmp;
gboolean is_irc;
- account_manager = tp_account_manager_dup ();
- accounts = tp_account_manager_dup_valid_accounts (account_manager);
+ accounts = tp_account_manager_dup_valid_accounts (
+ self->priv->account_manager);
strv = g_strsplit (filename, G_DIR_SEPARATOR_S, -1);
len = g_strv_length (strv);
@@ -534,7 +538,6 @@ log_store_pidgin_dup_account (const gchar *filename)
g_free (server);
g_list_free_full (accounts, g_object_unref);
g_strfreev (strv);
- g_object_unref (account_manager);
return account;
}
@@ -573,7 +576,8 @@ log_store_pidgin_search_hit_new (TplLogStore *self,
g_free (id);
- hit->account = log_store_pidgin_dup_account (filename);
+ hit->account = log_store_pidgin_dup_account (TPL_LOG_STORE_PIDGIN (self),
+ filename);
g_strfreev (strv);
More information about the telepathy-commits
mailing list