From 0f0729266bacccb06869d685e19563fa8424bfee Mon Sep 17 00:00:00 2001 From: jfa Date: Tue, 13 Sep 2005 10:18:10 +0000 Subject: [PATCH] return right CORBA value to avoid messages like 'free(): invalid pointer' --- src/GEOM_I/GEOM_IOperations_i.cc | 42 +++++++++++++++----------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/src/GEOM_I/GEOM_IOperations_i.cc b/src/GEOM_I/GEOM_IOperations_i.cc index a1c49f8ec..635b5fc4f 100644 --- a/src/GEOM_I/GEOM_IOperations_i.cc +++ b/src/GEOM_I/GEOM_IOperations_i.cc @@ -1,15 +1,12 @@ -#include - #include "GEOM_IOperations_i.hh" +#include "GEOM_Engine.hxx" + #include "utilities.h" #include "OpUtil.hxx" #include "Utils_ExceptHandlers.hxx" -#include "GEOM_Engine.hxx" - -//#include "GEOM_Gen_i.hh" - +#include #include #include @@ -36,46 +33,46 @@ GEOM_IOperations_i::~GEOM_IOperations_i() //============================================================================= -/*! +/*! * IsDone */ -//============================================================================= +//============================================================================= CORBA::Boolean GEOM_IOperations_i::IsDone() { return _impl->IsDone(); -} +} //============================================================================= -/*! +/*! * SetErrorCode */ -//============================================================================= +//============================================================================= void GEOM_IOperations_i::SetErrorCode(const char* theErrorCode) { _impl->SetErrorCode((char*)theErrorCode); } - + //============================================================================= /*! * GetErrorCode */ -//============================================================================= -char* GEOM_IOperations_i::GetErrorCode() +//============================================================================= +char* GEOM_IOperations_i::GetErrorCode() { - return _impl->GetErrorCode(); + return CORBA::string_dup(_impl->GetErrorCode()); } - + //============================================================================= /*! * GetStudyID */ -//============================================================================= -CORBA::Long GEOM_IOperations_i::GetStudyID() +//============================================================================= +CORBA::Long GEOM_IOperations_i::GetStudyID() { - return _impl->GetDocID(); + return _impl->GetDocID(); } - + //============================================================================= /*! * StartOperation @@ -112,12 +109,11 @@ void GEOM_IOperations_i::AbortOperation() * GetObject */ //============================================================================= -GEOM::GEOM_Object_ptr GEOM_IOperations_i::GetObject(Handle(GEOM_Object) theObject) +GEOM::GEOM_Object_ptr GEOM_IOperations_i::GetObject(Handle(GEOM_Object) theObject) { if(theObject.IsNull()) return NULL; TCollection_AsciiString anEntry; TDF_Tool::Entry(theObject->GetEntry(), anEntry); GEOM::GEOM_Object_var GO = GEOM::GEOM_Object::_duplicate(_engine->GetObject(theObject->GetDocID(), anEntry.ToCString())); return GO._retn(); -} - +} -- 2.39.2