//=================================================================================
void SMESH_VisualObjDef::buildNodePrs()
{
+ // PAL16631: without swap, bad_alloc is not thrown but hung up and crash instead,
+ // so check remaining memory size for safety
+ SMDS_Mesh::CheckMemory(); // PAL16631
vtkPoints* aPoints = vtkPoints::New();
createPoints( aPoints );
+ SMDS_Mesh::CheckMemory();
myGrid->SetPoints( aPoints );
aPoints->Delete();
for ( int i = 0; i <= 2; i++ )
nbEnts[ aTypes[ i ] ] = GetEntities( aTypes[ i ], anEnts[ aTypes[ i ] ] );
+ // PAL16631: without swap, bad_alloc is not thrown but hung up and crash instead,
+ // so check remaining memory size for safety
+ SMDS_Mesh::CheckMemory(); // PAL16631
+
vtkIdType aCellsSize = 3 * nbEnts[ SMDSAbs_Edge ];
for ( int i = 1; i <= 2; i++ ) // iterate through faces and volumes
vtkCellArray* aConnectivity = vtkCellArray::New();
aConnectivity->Allocate( aCellsSize, 0 );
+ SMDS_Mesh::CheckMemory(); // PAL16631
+
vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
aCellTypesArray->SetNumberOfComponents( 1 );
aCellTypesArray->Allocate( aNbCells * aCellTypesArray->GetNumberOfComponents() );
+ SMDS_Mesh::CheckMemory(); // PAL16631
+
vtkIdList *anIdList = vtkIdList::New();
vtkIdType iElem = 0;
TConnect aConnect;
aConnect.reserve(VTK_CELL_SIZE);
+ SMDS_Mesh::CheckMemory(); // PAL16631
+
for ( int i = 0; i <= 2; i++ ) // iterate through edges, faces and volumes
{
if( nbEnts[ aTypes[ i ] ] > 0 )
iElem++;
}
}
+ SMDS_Mesh::CheckMemory(); // PAL16631
}
// Insert cells in grid
aCellLocationsArray->SetNumberOfComponents( 1 );
aCellLocationsArray->SetNumberOfTuples( aNbCells );
+ SMDS_Mesh::CheckMemory(); // PAL16631
+
aConnectivity->InitTraversal();
for( vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell( npts, pts ); idType++ )
aCellLocationsArray->SetValue( idType, aConnectivity->GetTraversalLocation( npts ) );
aCellTypesArray->Delete();
aConnectivity->Delete();
anIdList->Delete();
+
+ SMDS_Mesh::CheckMemory(); // PAL16631
}
//=================================================================================