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

View File

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