fix ref count issues on file modify while in use. lost handles and

dictionaries we depend on.


SVN revision: 33894
This commit is contained in:
Carsten Haitzler 2008-03-02 04:56:57 +00:00
parent 8a3e188813
commit 20d79e8612
1 changed files with 11 additions and 6 deletions

View File

@ -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);