X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fgraphics.c;h=1ab5a359b68ba304bf3d0a1c5ec90d357bc13ff0;hb=cdb84c7c776f214f41ba1a509efb2494e7ed1baf;hp=6842000e38c6f7acf3746d8e24692c53b09322a2;hpb=393b7a2b777d06754da16ffa5998d3eb9bf128ad;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/graphics.c b/libchimara/graphics.c index 6842000..1ab5a35 100644 --- a/libchimara/graphics.c +++ b/libchimara/graphics.c @@ -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); } @@ -229,11 +232,11 @@ image_cache_find(struct image_info* to_find) * @height: Pointer to a location at which to store the image's height. * * This gets information about the image resource with the given identifier. It - * returns %TRUE if there is such an image, and %FALSE if not. You can also pass - * pointers to width and height variables; if the image exists, the variables - * will be filled in with the width and height of the image, in pixels. (You can - * pass %NULL for either width or height if you don't care about that - * information.) + * returns %TRUE (1) if there is such an image, and %FALSE (0) if not. You can + * also pass pointers to width and height variables; if the image exists, the + * variables will be filled in with the width and height of the image, in + * pixels. (You can pass %NULL for either width or height if you don't care + * about that information.) * * * You should always use this function to measure the size of images when you