Salome HOME
Avoid unlimited cycling on nodes sorting
authorvsv <vsv@opencascade.com>
Tue, 25 Sep 2018 13:30:04 +0000 (16:30 +0300)
committervsv <vsv@opencascade.com>
Tue, 25 Sep 2018 13:30:23 +0000 (16:30 +0300)
src/ModuleBase/ModuleBase_ITreeNode.h

index 77d1d2a46fa6fb71b35ba5e52669f9eab5c59198..c188dd97edad6a9d70deed276e20747decc60dd1 100644 (file)
@@ -183,7 +183,10 @@ protected:
       ModuleBase_ITreeNode* aNode = 0;
       ObjectPtr aObject;
       int aIdx;
-      while (i < myChildren.size()) {
+      int aCount = 0;
+      int aSize = myChildren.size();
+      while (i < aSize) {
+        aCount++;
         aNode = myChildren.at(i);
         aObject = aNode->object();
         if (aObject.get()) {
@@ -196,6 +199,9 @@ protected:
           }
         }
         i++;
+        // To avoid unlimited cycling
+        if (aCount > aSize * aSize)
+          break;
       }
     }
   }