From a6aa354d0e397e647dec23c1f010ceb64cdf9047 Mon Sep 17 00:00:00 2001 From: cascade Date: Mon, 18 Oct 2004 09:55:32 +0000 Subject: [PATCH] OCC6786 wrm does not remove directory due to sharing violation --- src/WOKNT/WOKNT_PathIterator.cxx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/WOKNT/WOKNT_PathIterator.cxx b/src/WOKNT/WOKNT_PathIterator.cxx index 4d6c7e9..450172b 100755 --- a/src/WOKNT/WOKNT_PathIterator.cxx +++ b/src/WOKNT/WOKNT_PathIterator.cxx @@ -82,12 +82,18 @@ void WOKNT_PathIterator::Push(const WOKNT_FindData& data, const WOKNT_Handle& ha if(!myStack.IsEmpty()) { if(myStack.Top() == INVALID_HANDLE_VALUE ) - mymore = Standard_False; + { + Pop(); + mymore = Standard_False; + } else mymore = Standard_True; } else - mymore = Standard_False; + { + Pop(); + mymore = Standard_False; + } } } else @@ -130,7 +136,8 @@ void WOKNT_PathIterator::Next() if(myStack.Top()!=INVALID_HANDLE_VALUE && mymore) { if(!IsDots(mydata.cFileName) && mydata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY && myrecflag) - Push(mydata, myStack.Top()); + Push(mydata, myStack.Top()); + if (!mymore) Pop(); else { if(!FindNextFile(myStack.Top(), &mydata)) -- 2.39.5