]> OCCT Git - occt-wok.git/commitdiff
OCC6786 wrm does not remove directory due to sharing violation
authorcascade <cascade@opencascade.com>
Mon, 18 Oct 2004 09:55:32 +0000 (09:55 +0000)
committercascade <cascade@opencascade.com>
Mon, 18 Oct 2004 09:55:32 +0000 (09:55 +0000)
src/WOKNT/WOKNT_PathIterator.cxx

index 4d6c7e997c6d9dbce4e06274d79d503bb498e8ca..450172baef5772db1105a0f53a0e6d05180b8a4f 100755 (executable)
@@ -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))