X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers_I%2FStdMeshers_ImportSource2D_i.cxx;h=f8d31a414ded0b93efc4c899b9fcdb97048fc46f;hb=c621e7dcf577e76e964c2d7117866c32e3f7ec27;hp=35f9d3fb057df4c56780dba5ef81881e609b3ad2;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;p=modules%2Fsmesh.git diff --git a/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx b/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx index 35f9d3fb0..f8d31a414 100644 --- a/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -90,25 +90,26 @@ void StdMeshers_ImportSource2D_i::SetSourceFaces(const SMESH::ListOfGroups& grou std::vector smesh_groups; std::vector entries; SALOMEDS::Study_var study = SMESH_Gen_i::GetSMESHGen()->GetCurrentStudy(); - for ( int i = 0; i < groups.length(); ++i ) + for ( CORBA::ULong i = 0; i < groups.length(); ++i ) if ( SMESH_GroupBase_i* gp_i = SMESH::DownCast( groups[i] )) { if ( gp_i->GetType() != SMESH::FACE ) THROW_SALOME_CORBA_EXCEPTION("Wrong group type", SALOME::BAD_PARAM); smesh_groups.push_back( gp_i->GetSmeshGroup() ); - SALOMEDS::SObject_var so = SMESH_Gen_i::GetSMESHGen()->ObjectToSObject(study, groups[i]); + SALOMEDS::SObject_var so = SMESH_Gen_i::ObjectToSObject(study, groups[i]); if ( !so->_is_nil()) { CORBA::String_var entry = so->GetID(); entries.push_back( entry.in() ); + so->UnRegister(); } } this->GetImpl()->SetGroups( smesh_groups ); _groupEntries = new SMESH::string_array; _groupEntries->length( entries.size ()); - for ( int i = 0; i < entries.size(); ++i ) + for ( size_t i = 0; i < entries.size(); ++i ) _groupEntries[i] = entries[i].c_str(); } catch ( SALOME_Exception& S_ex ) @@ -172,16 +173,18 @@ char* StdMeshers_ImportSource2D_i::SaveTo() os << " " << _groupEntries->length(); SALOMEDS::Study_var study = SMESH_Gen_i::GetSMESHGen()->GetCurrentStudy(); - for ( int i = 0; i < _groupEntries->length(); ++i ) + for ( CORBA::ULong i = 0; i < _groupEntries->length(); ++i ) { // entry os << " " << _groupEntries[i]; // id SALOMEDS::SObject_var groupSO = study->FindObjectID( _groupEntries[i] ); - CORBA::Object_var groupObj; - if ( !groupSO->_is_nil() ) + CORBA::Object_var groupObj; + if ( !groupSO->_is_nil() ) { groupObj = groupSO->GetObject(); + groupSO->UnRegister(); + } StdMeshers_ObjRefUlils::SaveToStream( groupObj, os ); } @@ -207,7 +210,7 @@ void StdMeshers_ImportSource2D_i::LoadFrom( const char* theStream ) _groupEntries = new SMESH::string_array; _groupEntries->length( nbGroups ); std::string id, entry; - for ( int i = 0; i < _groupEntries->length(); ++i ) + for ( CORBA::ULong i = 0; i < _groupEntries->length(); ++i ) { if ( is >> entry ) _groupEntries[i] = entry.c_str();