Use CORBA::string_dup instead of strdup to avoid memory problems. Suppress redundant string duplications.

This commit is contained in:
jfa 2006-10-04 15:20:32 +00:00
parent e47799d70d
commit 4cb5895062

View File

@ -108,7 +108,7 @@ char* GEOM_Gen_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
{ {
GEOM::GEOM_Object_var anObject = GEOM::GEOM_Object::_narrow(_orb->string_to_object(IORString)); GEOM::GEOM_Object_var anObject = GEOM::GEOM_Object::_narrow(_orb->string_to_object(IORString));
if (!CORBA::is_nil(anObject)) { if (!CORBA::is_nil(anObject)) {
return strdup(anObject->GetEntry()); return CORBA::string_dup(anObject->GetEntry());
} }
return 0; return 0;
} }
@ -133,7 +133,7 @@ char* GEOM_Gen_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
GEOM::GEOM_Object_var obj = GetObject(anObject->GetDocID(), anEntry.ToCString()); GEOM::GEOM_Object_var obj = GetObject(anObject->GetDocID(), anEntry.ToCString());
CORBA::String_var aPersRefString = _orb->object_to_string(obj); CORBA::String_var aPersRefString = _orb->object_to_string(obj);
return strdup(aPersRefString); return CORBA::string_dup(aPersRefString);
} }
//============================================================================ //============================================================================
@ -187,8 +187,10 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
} }
anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeIOR"); anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeIOR");
SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
char *aGeomObjIOR = _orb->object_to_string(theObject); //char *aGeomObjIOR = _orb->object_to_string(theObject);
anIOR->SetValue(strdup(aGeomObjIOR)); CORBA::String_var aGeomObjIOR = _orb->object_to_string(theObject);
//anIOR->SetValue(CORBA::string_dup(aGeomObjIOR));
anIOR->SetValue(aGeomObjIOR);
anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributePixMap"); anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributePixMap");
SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr); SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
@ -243,7 +245,7 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
aShapeName = "Vertex_"; aShapeName = "Vertex_";
} }
//if (strlen(theName) == 0) aShapeName += TCollection_AsciiString(aResultSO->Tag()); //if (strlen(theName) == 0) aShapeName += TCollection_AsciiString(aResultSO->Tag());
//else aShapeName = TCollection_AsciiString(strdup(theName)); //else aShapeName = TCollection_AsciiString(CORBA::string_dup(theName));
// asv : 11.11.04 Introducing a more sofisticated method of name creation, just as // asv : 11.11.04 Introducing a more sofisticated method of name creation, just as
// it is done in GUI in GEOMBase::GetDefaultName() - not just add a Tag() == number // it is done in GUI in GEOMBase::GetDefaultName() - not just add a Tag() == number
@ -261,7 +263,7 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
aShapeName = aNewShapeName; aShapeName = aNewShapeName;
} }
else // MOST PROBABLY CALLED FROM GEOM GUI (ALREADY WITH VALID NAME) else // MOST PROBABLY CALLED FROM GEOM GUI (ALREADY WITH VALID NAME)
aShapeName = TCollection_AsciiString(strdup(theName)); aShapeName = TCollection_AsciiString((char*)theName);
//Set the study entry as a name of the published GEOM_Object //Set the study entry as a name of the published GEOM_Object
aShape->SetStudyEntry(aResultSO->GetID()); aShape->SetStudyEntry(aResultSO->GetID());
@ -353,7 +355,7 @@ CORBA::Boolean GEOM_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.c_str(), aSeq.in(), true); if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.c_str(), aSeq.in(), true);
SALOMEDS::Study_var Study = theComponent->GetStudy(); SALOMEDS::Study_var Study = theComponent->GetStudy();
TCollection_AsciiString name( strdup(Study->Name()) ); TCollection_AsciiString name (Study->Name());
return true; return true;
} }
@ -486,7 +488,7 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PasteInto(const SALOMEDS::TMPFile& theStream,
//============================================================================ //============================================================================
char* GEOM_Gen_i::ComponentDataType() char* GEOM_Gen_i::ComponentDataType()
{ {
return strdup("GEOM"); return CORBA::string_dup("GEOM");
} }
//============================================================================ //============================================================================
@ -537,7 +539,7 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::AddInStudy(SALOMEDS::Study_ptr theStudy, GEOM:
void GEOM_Gen_i::register_name(char * name) void GEOM_Gen_i::register_name(char * name)
{ {
GEOM::GEOM_Gen_ptr g = GEOM::GEOM_Gen::_narrow(_this()); GEOM::GEOM_Gen_ptr g = GEOM::GEOM_Gen::_narrow(_this());
name_service->Register(g, strdup(name)); name_service->Register(g, CORBA::string_dup(name));
} }
//============================================================================ //============================================================================