[empathy/gnome-2-34] individual_store_get_individual_status_icon_with_icon_name: look in the cache before creating new pi



commit 0e2105c149b3e2d5fc8368cbab0daf546cd07cf3
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 242bad2..1b4b4fd 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -1902,7 +1902,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;
@@ -1934,13 +1934,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]