Replace deprecated functions
[projects/chimara/chimara.git] / libchimara / graphics.c
index afe3e76386a75899cda8850260cd68f566513cb8..1ab5a359b68ba304bf3d0a1c5ec90d357bc13ff0 100644 (file)
@@ -63,7 +63,7 @@ load_image_from_blorb(giblorb_result_t resource, glui32 image, gint width, gint
        g_mutex_unlock(glk_data->resource_lock);
 
        info->pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
-       gdk_pixbuf_ref(info->pixbuf);
+       g_object_ref(info->pixbuf);
 
        g_object_unref(loader);
        return info;
@@ -89,7 +89,7 @@ load_image_from_file(const gchar *filename, glui32 image, gint width, gint heigh
                g_free(info);
                return NULL;
        }
-       gdk_pixbuf_ref(info->pixbuf);
+       g_object_ref(info->pixbuf);
 
        return info;
 }
@@ -123,12 +123,15 @@ load_image_in_cache(glui32 image, gint width, gint height)
                info = load_image_from_blorb(resource, image, width, height);
        }
 
+       if(info == NULL)
+               return NULL;
+
        /* Store the image in the cache */
        gdk_threads_enter();
 
        if( g_slist_length(glk_data->image_cache) >= IMAGE_CACHE_MAX_NUM ) {
                struct image_info *head = (struct image_info*) glk_data->image_cache->data;
-               gdk_pixbuf_unref(head->pixbuf);
+               g_object_unref(head->pixbuf);
                g_free(head);
                glk_data->image_cache = g_slist_remove_link(glk_data->image_cache, glk_data->image_cache);
        }
@@ -172,7 +175,7 @@ on_pixbuf_closed(GdkPixbufLoader *loader, gpointer data)
 void
 clear_image_cache(struct image_info *data, gpointer user_data)
 {
-       gdk_pixbuf_unref(data->pixbuf);
+       g_object_unref(data->pixbuf);
        g_free(data);
 }