X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FDriverCGNS%2FDriverCGNS_Read.cxx;fp=src%2FDriverCGNS%2FDriverCGNS_Read.cxx;h=5afdfa3e7d1d2d9db8cb26f24c579a66822db3ea;hp=86aae7294094c0446d6912ef726e0c4c214edd89;hb=d96d5ee20caeec90201c482fa6ef158ef5c9629f;hpb=b09372829929f8f561495d6c16527134971a1909 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; } }