mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-30 19:30:35 +05:00
PAL16774,PAL16631(SALOME crash after a mesh computation that failed because of lack of memory)
1) - void Update( int theIsClear = true ); + bool Update( int theIsClear = true ); 2) Do not catch here
This commit is contained in:
parent
b7b32942ac
commit
0fecea680b
@ -199,8 +199,10 @@ void SMESH_VisualObjDef::createPoints( vtkPoints* thePoints )
|
||||
//=================================================================================
|
||||
void SMESH_VisualObjDef::buildPrs()
|
||||
{
|
||||
try
|
||||
{
|
||||
// PAL16631(crash after a mesh computation that failed because of lack of memory):
|
||||
// Catch exceptions upper by stack
|
||||
// try
|
||||
// {
|
||||
mySMDS2VTKNodes.clear();
|
||||
myVTK2SMDSNodes.clear();
|
||||
mySMDS2VTKElems.clear();
|
||||
@ -210,15 +212,15 @@ void SMESH_VisualObjDef::buildPrs()
|
||||
buildNodePrs();
|
||||
else
|
||||
buildElemPrs();
|
||||
}
|
||||
catch( const std::exception& exc )
|
||||
{
|
||||
INFOS("Follow exception was cought:\n\t"<<exc.what());
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
INFOS("Unknown exception was cought !!!");
|
||||
}
|
||||
// }
|
||||
// catch( const std::exception& exc )
|
||||
// {
|
||||
// INFOS("Follow exception was cought:\n\t"<<exc.what());
|
||||
// }
|
||||
// catch(...)
|
||||
// {
|
||||
// INFOS("Unknown exception was cought !!!");
|
||||
// }
|
||||
|
||||
if( MYDEBUG ) MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
|
||||
if( MYDEBUGWITHFILES ) SMESH::WriteUnstructuredGrid( myGrid,"/tmp/buildPrs" );
|
||||
@ -516,11 +518,14 @@ SMESH_MeshObj::~SMESH_MeshObj()
|
||||
// function : Update
|
||||
// purpose : Update mesh and fill grid with new values if necessary
|
||||
//=================================================================================
|
||||
void SMESH_MeshObj::Update( int theIsClear )
|
||||
bool SMESH_MeshObj::Update( int theIsClear )
|
||||
{
|
||||
// Update SMDS_Mesh on client part
|
||||
if ( myClient.Update(theIsClear) )
|
||||
if ( myClient.Update(theIsClear) || GetUnstructuredGrid()->GetNumberOfPoints()==0) {
|
||||
buildPrs(); // Fill unstructured grid
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -675,10 +680,11 @@ void SMESH_SubMeshObj::UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunc
|
||||
// function : Update
|
||||
// purpose : Update mesh object and fill grid with new values
|
||||
//=================================================================================
|
||||
void SMESH_SubMeshObj::Update( int theIsClear )
|
||||
bool SMESH_SubMeshObj::Update( int theIsClear )
|
||||
{
|
||||
myMeshObj->Update( theIsClear );
|
||||
bool changed = myMeshObj->Update( theIsClear );
|
||||
buildPrs();
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user