BUG: Need to reset internal structure in case of multiple calls to Load

This commit is contained in:
Mathieu Malaterre 2006-03-06 11:57:05 -05:00
parent 70e6fe3f9b
commit e34d666fc7
2 changed files with 16 additions and 0 deletions

View File

@ -76,6 +76,13 @@ const char* Directory::GetPath() const
return this->Internal->Path.c_str();
}
//----------------------------------------------------------------------------
void Directory::Clear()
{
this->Internal->Path.clear();
this->Internal->Files.clear();
}
} // namespace KWSYS_NAMESPACE
// First microsoft compilers
@ -96,6 +103,7 @@ namespace KWSYS_NAMESPACE
bool Directory::Load(const char* name)
{
this->Clear();
#if _MSC_VER < 1300
long srchHandle;
#else
@ -148,6 +156,7 @@ namespace KWSYS_NAMESPACE
bool Directory::Load(const char* name)
{
this->Clear();
DIR* dir = opendir(name);
if (!dir)

View File

@ -57,6 +57,13 @@ public:
*/
const char* GetPath() const;
protected:
/**
* Clear the internal structure. Used internally at beginning of Load(...) to clear
* the cache.
*/
void Clear();
private:
// Private implementation details.
DirectoryInternals* Internal;