projects
/
geeqie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add filedata counting to watch for filedata leaks
[geeqie.git]
/
src
/
filedata.c
diff --git
a/src/filedata.c
b/src/filedata.c
index
6adafc2
..
95f74d6
100644
(file)
--- a/
src/filedata.c
+++ b/
src/filedata.c
@@
-26,6
+26,10
@@
#include <errno.h>
#include <errno.h>
+#ifdef DEBUG_FILEDATA
+gint global_file_data_count = 0;
+#endif
+
static GHashTable *file_data_pool = NULL;
static GHashTable *file_data_planned_change_hash = NULL;
static GHashTable *file_data_pool = NULL;
static GHashTable *file_data_planned_change_hash = NULL;
@@
-383,6
+387,10
@@
static FileData *file_data_new(const gchar *path_utf8, struct stat *st, gboolean
}
fd = g_new0(FileData, 1);
}
fd = g_new0(FileData, 1);
+#ifdef DEBUG_FILEDATA
+ global_file_data_count++;
+ DEBUG_2("file data count++: %d", global_file_data_count);
+#endif
fd->size = st->st_size;
fd->date = st->st_mtime;
fd->size = st->st_size;
fd->date = st->st_mtime;
@@
-534,6
+542,11
@@
static void file_data_free(FileData *fd)
g_assert(fd->ref == 0);
g_assert(!fd->locked);
g_assert(fd->ref == 0);
g_assert(!fd->locked);
+#ifdef DEBUG_FILEDATA
+ global_file_data_count--;
+ DEBUG_2("file data count--: %d", global_file_data_count);
+#endif
+
metadata_cache_free(fd);
g_hash_table_remove(file_data_pool, fd->original_path);
metadata_cache_free(fd);
g_hash_table_remove(file_data_pool, fd->original_path);