From: eap Date: Thu, 22 Apr 2021 11:07:55 +0000 (+0300) Subject: bos #20256 [CEA 18523] Porting SMESH to int 64 bits X-Git-Tag: V9_7_0rc1~10 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=d96d5ee20caeec90201c482fa6ef158ef5c9629f bos #20256 [CEA 18523] Porting SMESH to int 64 bits fix regression in CGNS caused by bad rebase to master --- diff --git a/src/DriverCGNS/DriverCGNS_Read.cxx b/src/DriverCGNS/DriverCGNS_Read.cxx index 86aae7294..5afdfa3e7 100644 --- a/src/DriverCGNS/DriverCGNS_Read.cxx +++ b/src/DriverCGNS/DriverCGNS_Read.cxx @@ -552,9 +552,9 @@ namespace nbNodes = ids[0]; ++ids; #endif - vector idVec( ids[0] ); - for ( int i = 0; i < ids[0]; ++i ) - idVec[ i ] = ToSmIdType( ids[ i + 1]); + vector idVec( nbNodes ); + for ( int i = 0; i < nbNodes; ++i ) + idVec[ i ] = ToSmIdType( ids[ i ]); return mesh->AddPolygonalFaceWithID( idVec, ToSmIdType(ID) ); } @@ -892,6 +892,8 @@ Driver_Mesh::Status DriverCGNS_Read::Perform() curAddElemFun = addElemFuns[ elemType ]; SMDS_MeshElement* newElem = 0; const SMDS_MeshElement* face; + vector quantities; + vector nodes, faceNodes; while ( pos < eDataSize ) { @@ -923,9 +925,8 @@ Driver_Mesh::Status DriverCGNS_Read::Perform() // Face1M, Face2M, ... FaceNM nbFaces = polyOffset[ iElem + 1 ] - polyOffset[ iElem ]; - vector quantities( nbFaces ); - vector nodes, faceNodes; - nodes.reserve( nbFaces * 4 ); + quantities.resize( nbFaces ); quantities.back() = 0; + nodes.clear(); nodes.reserve( nbFaces * 4 ); for ( int iF = 0; iF < nbFaces; ++iF ) { const int faceID = std::abs( elemData[ pos++ ]) + zone._elemIdShift; @@ -947,6 +948,7 @@ Driver_Mesh::Status DriverCGNS_Read::Perform() } else { polyhedError = true; + pos += nbFaces - iF - 1; break; } } diff --git a/src/DriverCGNS/DriverCGNS_Write.cxx b/src/DriverCGNS/DriverCGNS_Write.cxx index 9320b826a..bdedf770b 100644 --- a/src/DriverCGNS/DriverCGNS_Write.cxx +++ b/src/DriverCGNS/DriverCGNS_Write.cxx @@ -474,7 +474,7 @@ Driver_Mesh::Status DriverCGNS_Write::Perform() cgID-1, /*nbndry=*/0, elemData.data(), &iSec) != CG_OK ) return addMessage( cg_get_error(), /*fatal = */true ); } - } + } // while ( elem ) // Write polyhedral volumes // ------------------------- diff --git a/src/SMDS/SMDS_ElementFactory.cxx b/src/SMDS/SMDS_ElementFactory.cxx index e5e29e065..c3ab97c8c 100644 --- a/src/SMDS/SMDS_ElementFactory.cxx +++ b/src/SMDS/SMDS_ElementFactory.cxx @@ -218,7 +218,7 @@ const SMDS_MeshElement* SMDS_ElementFactory::FindElement( const smIdType id ) co //================================================================================ /*! * \brief Return an SMDS ID by a Vtk one - * \param [inout] vtkID - Vtk ID + * \param [in] vtkID - Vtk ID * \return smIdType - SMDS ID */ //================================================================================ diff --git a/src/SMDS/SMDS_MeshVolume.cxx b/src/SMDS/SMDS_MeshVolume.cxx index 8147520c5..5570bc323 100644 --- a/src/SMDS/SMDS_MeshVolume.cxx +++ b/src/SMDS/SMDS_MeshVolume.cxx @@ -88,7 +88,7 @@ bool SMDS_MeshVolume::ChangeNodes(const std::vector& nodes // stream size and nb faces should not change - if ((int) quantities.size() != nFaces ) + if ((vtkIdType) quantities.size() != nFaces ) { return false; }