mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-02 21:00:34 +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()
|
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();
|
mySMDS2VTKNodes.clear();
|
||||||
myVTK2SMDSNodes.clear();
|
myVTK2SMDSNodes.clear();
|
||||||
mySMDS2VTKElems.clear();
|
mySMDS2VTKElems.clear();
|
||||||
@ -210,15 +212,15 @@ void SMESH_VisualObjDef::buildPrs()
|
|||||||
buildNodePrs();
|
buildNodePrs();
|
||||||
else
|
else
|
||||||
buildElemPrs();
|
buildElemPrs();
|
||||||
}
|
// }
|
||||||
catch( const std::exception& exc )
|
// catch( const std::exception& exc )
|
||||||
{
|
// {
|
||||||
INFOS("Follow exception was cought:\n\t"<<exc.what());
|
// INFOS("Follow exception was cought:\n\t"<<exc.what());
|
||||||
}
|
// }
|
||||||
catch(...)
|
// catch(...)
|
||||||
{
|
// {
|
||||||
INFOS("Unknown exception was cought !!!");
|
// INFOS("Unknown exception was cought !!!");
|
||||||
}
|
// }
|
||||||
|
|
||||||
if( MYDEBUG ) MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
|
if( MYDEBUG ) MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
|
||||||
if( MYDEBUGWITHFILES ) SMESH::WriteUnstructuredGrid( myGrid,"/tmp/buildPrs" );
|
if( MYDEBUGWITHFILES ) SMESH::WriteUnstructuredGrid( myGrid,"/tmp/buildPrs" );
|
||||||
@ -516,11 +518,14 @@ SMESH_MeshObj::~SMESH_MeshObj()
|
|||||||
// function : Update
|
// function : Update
|
||||||
// purpose : Update mesh and fill grid with new values if necessary
|
// 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
|
// Update SMDS_Mesh on client part
|
||||||
if ( myClient.Update(theIsClear) )
|
if ( myClient.Update(theIsClear) || GetUnstructuredGrid()->GetNumberOfPoints()==0) {
|
||||||
buildPrs(); // Fill unstructured grid
|
buildPrs(); // Fill unstructured grid
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=================================================================================
|
//=================================================================================
|
||||||
@ -675,10 +680,11 @@ void SMESH_SubMeshObj::UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunc
|
|||||||
// function : Update
|
// function : Update
|
||||||
// purpose : Update mesh object and fill grid with new values
|
// 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();
|
buildPrs();
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user