0024933: Inconsistent results of self-interferences checker in SALOME and DRAW Applic...
[occt.git] / src / BOPAlgo / BOPAlgo_CheckerSI.cxx
index c6aa133..859b5c9 100644 (file)
@@ -126,6 +126,8 @@ void BOPAlgo_CheckerSI::Init()
 void BOPAlgo_CheckerSI::Perform()
 {
   try {
+    Standard_Integer iErr;
+    //
     OCC_CATCH_SIGNALS
     //
     myErrorStatus=0;
@@ -142,37 +144,43 @@ void BOPAlgo_CheckerSI::Perform()
     }
     //
     BOPAlgo_PaveFiller::Perform();
+    iErr=myErrorStatus; 
     //
-    if (!myErrorStatus) {
-      PerformVZ();
+    PerformVZ();
+    if (myErrorStatus) {
+      iErr=myErrorStatus; 
     }
     //
-    if (!myErrorStatus) {
-      PerformEZ();
-    } 
+    PerformEZ();
+    if (myErrorStatus) {
+      iErr=myErrorStatus; 
+    }
     //
-    if (!myErrorStatus) {
-      PerformFZ();
+    PerformFZ();
+    if (myErrorStatus) {
+      iErr=myErrorStatus; 
     }
     //
-    if (!myErrorStatus) {
-      PerformZZ();
+    PerformZZ();
+    if (myErrorStatus) {
+      iErr=myErrorStatus; 
     }
     // 
-    if (!myErrorStatus) {
-      PostTreat();
+    PostTreat();
+    if (myErrorStatus) {
+      iErr=myErrorStatus; 
     }
     //
     if (myNonDestructive) {
-      Standard_Integer iErr;
-      //
-      iErr=myErrorStatus; 
-      //
       PostTreatCopy();
-      if (!myErrorStatus) {
-        myErrorStatus=iErr;
+      if (myErrorStatus) {
+        iErr=myErrorStatus; 
       }
     }
+    //
+    if (iErr) {
+      myErrorStatus=iErr;
+    }
   }
   //
   catch (Standard_Failure) {
@@ -183,7 +191,6 @@ void BOPAlgo_CheckerSI::Perform()
     myErrorStatus=11;
   }
 }
-
 //=======================================================================
 //function : PostTreat
 //purpose  :