Salome HOME
PAL13330( When mesh generation does not success, trace where )
authoreap <eap@opencascade.com>
Tue, 10 Apr 2007 15:41:54 +0000 (15:41 +0000)
committereap <eap@opencascade.com>
Tue, 10 Apr 2007 15:41:54 +0000 (15:41 +0000)
   avoid overriding the error set by ApplyToCollection()

src/SMESH/SMESH_subMesh.cxx

index 615d5bbbcfc9873919cfa0e27b58bda90edea696..fcec36a15043839354e1c472a5a57aa0ee2c907b 100644 (file)
@@ -1358,7 +1358,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
         if (_father->HasShapeToMesh() ) {
           bool subComputed = SubMeshesComputed();
           ret = ( algo->NeedDescretBoundary() ? subComputed :
-                  ( _father->IsNotConformAllowed() || !subComputed ));
+                  ( !subComputed || _father->IsNotConformAllowed() ));
           if (!ret) {
             _computeState = FAILED_TO_COMPUTE;
             if ( !algo->NeedDescretBoundary() )
@@ -1392,7 +1392,10 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
             else
               ret = algo->Compute((*_father), _subShape);
           }
-          _computeError = algo->GetComputeError();
+          if ( !ret )
+            if ( SMESH_ComputeErrorPtr err = algo->GetComputeError())
+              if ( !err->IsOK() ) // avoid overriding the error set by ApplyToCollection()
+                _computeError = err;
         }
         catch (Standard_Failure& exc) {
           if ( !_computeError ) _computeError = SMESH_ComputeError::New();