Author: akv
Date: 2013-05-06 16:16:12 +0200 (Mon, 06 May 2013)
New Revision: 4392
Modified:
branches/4175-enfuse/src/rs-actions.c
Log:
Cleaning up in enfuse cache after usage.
Modified: branches/4175-enfuse/src/rs-actions.c
===================================================================
--- branches/4175-enfuse/src/rs-actions.c 2013-05-06 11:29:24 UTC (rev
4391)
+++ branches/4175-enfuse/src/rs-actions.c 2013-05-06 14:16:12 UTC (rev
4392)
@@ -1554,6 +1554,19 @@
return g_str_equal(a, b);
}
+gboolean cache_cleanup_free_data(gpointer key, gpointer value, gpointer
user_data) {
+ /* FIXME: is this enough? */
+ g_object_unref(RS_PHOTO(value));
+ g_free(key);
+ return TRUE;
+}
+
+void
+cache_cleanup(GHashTable *hashtable) {
+ if (hashtable)
+ g_hash_table_foreach_remove(hashtable, cache_cleanup_free_data, NULL);
+}
+
ACTION(enfuse)
{
rs_preview_widget_blank((RSPreviewWidget *) rs->preview);
@@ -1681,6 +1694,7 @@
gtk_widget_destroy(dialog);
/* unlock render or we won't be able to do anything */
rs_preview_widget_unlock_renderer((RSPreviewWidget *) rs->preview);
+ cache_cleanup(rs->enfuse_cache);
return;
}
gtk_widget_destroy(dialog);
@@ -1689,7 +1703,7 @@
gchar *filename = rs_enfuse(rs, selected_names, FALSE, -1);
gui_set_busy(FALSE);
- /* FIXME: cleanup rs->enfuse_cache and free everything in it */
+ cache_cleanup(rs->enfuse_cache);
g_list_free(selected_names);
rs_cache_save_flags(filename, &priority, NULL, &enfuse);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit