diff --git a/stepmania/src/RageUtil_FileDB.cpp b/stepmania/src/RageUtil_FileDB.cpp index 08dce57d88..e86c650e9c 100644 --- a/stepmania/src/RageUtil_FileDB.cpp +++ b/stepmania/src/RageUtil_FileDB.cpp @@ -429,8 +429,15 @@ FileSet &FilenameDB::GetFileSet(CString dir, bool ResolveCase) void FilenameDB::FlushDirCache() { + set freed; for( map::iterator i = dirs.begin(); i != dirs.end(); ++i ) + { + if( freed.find(i->second) != freed.end() ) + continue; + delete i->second; + freed.insert( i->second ); + } dirs.clear(); }