PAL13330( When mesh generation does not success, trace where )

avoid overriding the error set by ApplyToCollection()
This commit is contained in:
eap 2007-04-10 15:41:54 +00:00
parent 0d7f46098b
commit ade1823d88

View File

@ -1358,7 +1358,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
if (_father->HasShapeToMesh() ) { if (_father->HasShapeToMesh() ) {
bool subComputed = SubMeshesComputed(); bool subComputed = SubMeshesComputed();
ret = ( algo->NeedDescretBoundary() ? subComputed : ret = ( algo->NeedDescretBoundary() ? subComputed :
( _father->IsNotConformAllowed() || !subComputed )); ( !subComputed || _father->IsNotConformAllowed() ));
if (!ret) { if (!ret) {
_computeState = FAILED_TO_COMPUTE; _computeState = FAILED_TO_COMPUTE;
if ( !algo->NeedDescretBoundary() ) if ( !algo->NeedDescretBoundary() )
@ -1392,7 +1392,10 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
else else
ret = algo->Compute((*_father), _subShape); 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) { catch (Standard_Failure& exc) {
if ( !_computeError ) _computeError = SMESH_ComputeError::New(); if ( !_computeError ) _computeError = SMESH_ComputeError::New();