From ed80b87f3e13c0abe45cfb3c2a46ae60c477cc67 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 31 Aug 2004 09:35:12 +0000 Subject: [PATCH] revert and comment --- stepmania/src/RageUtil_FileDB.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/stepmania/src/RageUtil_FileDB.cpp b/stepmania/src/RageUtil_FileDB.cpp index 151e3e770e..e986fe42cf 100644 --- a/stepmania/src/RageUtil_FileDB.cpp +++ b/stepmania/src/RageUtil_FileDB.cpp @@ -244,23 +244,26 @@ FileSet *FilenameDB::GetFileSet( CString dir, bool create ) return i->second; } + FileSet *ret; if( i != dirs.end() ) { - if( ExpireSeconds == -1 || i->second->age.PeekDeltaTime() < ExpireSeconds ) + if( ExpireSeconds != -1 && i->second->age.PeekDeltaTime() >= ExpireSeconds ) { - /* Found it, and it hasn't expired. */ + /* The data has expired. Clear it, but don't delete it, so w + * don't break dirp pointers. */ + ret = i->second; + ret->age.Touch(); + ret->files.clear(); + } else return i->second; - } - - delete i->second; - dirs.erase( i ); + } + else + { + ret = new FileSet; + AddFileSet( dir, ret ); } - FileSet *ret = new FileSet; PopulateFileSet( *ret, dir ); - - AddFileSet( dir, ret ); - return ret; }