From 20d79e86121ce442009ac8aadf881347ee5ce59b Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 2 Mar 2008 04:56:57 +0000 Subject: [PATCH] fix ref count issues on file modify while in use. lost handles and dictionaries we depend on. SVN revision: 33894 --- legacy/eet/src/lib/eet_lib.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/legacy/eet/src/lib/eet_lib.c b/legacy/eet/src/lib/eet_lib.c index 3357267ea9..9f201d6f09 100644 --- a/legacy/eet/src/lib/eet_lib.c +++ b/legacy/eet/src/lib/eet_lib.c @@ -668,7 +668,9 @@ eet_clearcache(void) } for (i = 0; i < num; i++) - eet_close(closelist[i]); + { + eet_close(closelist[i]); + } } } @@ -1134,6 +1136,7 @@ eet_open(const char *file, Eet_File_Mode mode) if (ef && (file_stat.st_mtime != ef->mtime)) { ef->delete_me_now = 1; + ef->references++; eet_close(ef); ef = NULL; } @@ -1235,11 +1238,13 @@ eet_open(const char *file, Eet_File_Mode mode) if (ef->ed) { for (i = 0; i < ef->ed->count; ++i) - if (ef->ed->all[i].mmap) - { - ef->ed->all[i].str = strdup(ef->ed->all[i].mmap); - ef->ed->all[i].mmap = NULL; - } + { + if (ef->ed->all[i].mmap) + { + ef->ed->all[i].str = strdup(ef->ed->all[i].mmap); + ef->ed->all[i].mmap = NULL; + } + } } fclose(ef->fp);