[Xfce4-commits] <ristretto:master> Free EXIF data Improve cache-size calculation
Stephan Arts
stephan at xfce.org
Wed Aug 12 12:22:51 CEST 2009
Updating branch refs/heads/master
to d67206b1dc62557daf8e26033102a928f3957622 (commit)
from cb5053d9d63db53016fd7d0b7873c4231a8280b2 (commit)
commit d67206b1dc62557daf8e26033102a928f3957622
Author: Stephan Arts <stephan at xfce.org>
Date: Mon Jun 15 20:41:50 2009 +0200
Free EXIF data
Improve cache-size calculation
src/image.c | 6 ++++++
src/image_cache.c | 5 ++++-
2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/src/image.c b/src/image.c
index ecc8d07..9a8c850 100644
--- a/src/image.c
+++ b/src/image.c
@@ -212,6 +212,12 @@ rstto_image_dispose (GObject *object)
g_free (image->priv->buffer);
image->priv->buffer = NULL;
}
+
+ if (image->priv->exif_data)
+ {
+ exif_data_free (image->priv->exif_data);
+ image->priv->exif_data = NULL;
+ }
}
diff --git a/src/image_cache.c b/src/image_cache.c
index 5eb9451..00c4dc3 100644
--- a/src/image_cache.c
+++ b/src/image_cache.c
@@ -140,8 +140,10 @@ rstto_image_cache_push_image (RsttoImageCache *cache, RsttoImage *image, gboolea
for (iter = cache->cache_list->next; iter != NULL; iter = g_list_next (iter))
{
c_image = iter->data;
+ size += rstto_image_get_size (c_image);
if (size > (cache_size*1000000))
{
+ g_debug("Unload: %d", rstto_image_get_size (c_image));
rstto_image_unload (c_image);
cache->cache_list = g_list_remove (cache->cache_list, c_image);
g_object_unref (c_image);
@@ -150,9 +152,9 @@ rstto_image_cache_push_image (RsttoImageCache *cache, RsttoImage *image, gboolea
}
else
{
- size += rstto_image_get_size (c_image);
if (rstto_image_get_size (c_image) == 0)
{
+ g_debug("Unload: %d", rstto_image_get_size (c_image));
rstto_image_unload (c_image);
cache->cache_list = g_list_remove (cache->cache_list, c_image);
g_object_unref (c_image);
@@ -160,6 +162,7 @@ rstto_image_cache_push_image (RsttoImageCache *cache, RsttoImage *image, gboolea
}
}
}
+ g_debug ("CacheSize: %f%%\t %d:%d", ((gdouble)size/((gdouble)cache_size*1000000))*100, size, cache_size*1000000);
}
g_object_unref (settings);
return retval;
More information about the Xfce4-commits
mailing list