[empathy/gnome-3-0] individual_store_get_individual_status_icon_with_icon_name: look in the cache before creating new pi
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy/gnome-3-0] individual_store_get_individual_status_icon_with_icon_name: look in the cache before creating new pi
- Date: Mon, 2 May 2011 09:13:48 +0000 (UTC)
commit 8ef049e020bd40c14e6a104576f116b391c6a18b
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Mon May 2 10:10:17 2011 +0200
individual_store_get_individual_status_icon_with_icon_name: look in the cache before creating new pixbuf
libempathy-gtk/empathy-individual-store.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index 735e2db..b550245 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -1921,7 +1921,7 @@ individual_store_get_individual_status_icon_with_icon_name (
FolksIndividual *individual,
const gchar *status_icon_name)
{
- GdkPixbuf *pixbuf_status = NULL;
+ GdkPixbuf *pixbuf_status;
EmpathyIndividualStorePriv *priv;
const gchar *protocol_name = NULL;
gchar *icon_name = NULL;
@@ -1953,13 +1953,18 @@ individual_store_get_individual_status_icon_with_icon_name (
{
icon_name = g_strdup_printf ("%s", status_icon_name);
}
+
+ pixbuf_status = g_hash_table_lookup (priv->status_icons, icon_name);
+
if (pixbuf_status == NULL)
{
pixbuf_status =
empathy_pixbuf_contact_status_icon_with_icon_name (contact,
status_icon_name, show_protocols_here);
+
if (pixbuf_status != NULL)
{
+ /* pass the reference to the hash table */
g_hash_table_insert (priv->status_icons,
g_strdup (icon_name), pixbuf_status);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]