X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSMESH_I%2FSMESH_Gen_i_1.cxx;h=0896c5dc2354e23721b61161fbbc773c18314818;hb=d9f4b53e489dd5857db264ede6acded7b076c9f1;hp=672477ccc89d3c2d1db25e68e06a326f50632859;hpb=ed49807f170bded5dffd1f25be7b8c5799cdab6b;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx index 672477ccc..0896c5dc2 100644 --- a/src/SMESH_I/SMESH_Gen_i_1.cxx +++ b/src/SMESH_I/SMESH_Gen_i_1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -282,10 +282,10 @@ GEOM::GEOM_Object_ptr SMESH_Gen_i::GetGeomObjectByEntry( const std::string& entr //======================================================================= SALOMEDS::SObject_ptr SMESH_Gen_i::publish(CORBA::Object_ptr theIOR, - SALOMEDS::SObject_ptr theFatherObject, - const int theTag, - const char* thePixMap, - const bool theSelectable) + SALOMEDS::SObject_ptr theFatherObject, + const int theTag, + const char* thePixMap, + const bool theSelectable) { SALOMEDS::Study_var theStudy = getStudyServant(); SALOMEDS::SObject_wrap SO = ObjectToSObject( theIOR ); @@ -535,7 +535,7 @@ SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::SObject_ptr /*theSOb //======================================================================= //function : PublishComponent -//purpose : +//purpose : //======================================================================= SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent() @@ -547,9 +547,12 @@ SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent() SALOMEDS::StudyBuilder_var aStudyBuilder = getStudyServant()->NewBuilder(); SALOMEDS::UseCaseBuilder_wrap useCaseBuilder = getStudyServant()->GetUseCaseBuilder(); - std::string compDataType = ComponentDataType(); // SMESH module's data type - std::string ior = SMESH_Gen_i::GetORB()->object_to_string( SMESH_Gen::_this() ); // IOR of this SMESH engine - + CORBA::String_var compDataType = ComponentDataType(); // SMESH module's data type + std::string ior; + { + CORBA::String_var iorString = GetORB()->object_to_string( SMESH_Gen::_this() ); + ior = std::string( iorString.in() ); // IOR of this SMESH engine + } // Find study component which corresponds to this SMESH engine SALOMEDS::SComponent_wrap father; @@ -558,12 +561,14 @@ SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent() SALOMEDS::SComponent_wrap f_i = citer->Value(); CORBA::String_var ior_i; bool ok = f_i->ComponentIOR(ior_i.out()); - if ( ok && compDataType == f_i->ComponentDataType() && ior == ior_i.in()) { + CORBA::String_var cdt(f_i->ComponentDataType()); + if ( ok && strcmp( compDataType.in(), cdt.in() ) == 0 && ior == ior_i.in()) + { father = f_i; break; } } - + if ( !CORBA::is_nil( father ) ) { // check that the component is added to the use case browser if ( !useCaseBuilder->IsUseCaseNode( father ) ) { @@ -579,14 +584,14 @@ SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent() if ( CORBA::is_nil( aCat ) ) return father._retn(); - SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( compDataType.c_str() ); + SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( compDataType.in() ); if ( CORBA::is_nil( aComp ) ) return father._retn(); SALOMEDS::GenericAttribute_wrap anAttr; SALOMEDS::AttributePixMap_wrap aPixmap; - father = aStudyBuilder->NewComponent( compDataType.c_str() ); + father = aStudyBuilder->NewComponent( compDataType.in() ); aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() ); anAttr = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" ); aPixmap = anAttr; @@ -988,7 +993,7 @@ void SMESH_Gen_i::UpdateIcons( SMESH::SMESH_Mesh_ptr theMesh ) { if ( isGroupOnFilter ) // GetTypes() can be very long on GroupOnFilter! { - SMESH::long_array_var nbByType = mesh_i->GetNbElementsByType(); + SMESH::smIdType_array_var nbByType = mesh_i->GetNbElementsByType(); isEmpty = ( nbByType[ grp->GetType() ] == 0 ); } else