From cbedd53696ab2290950c5172afaf226dac4f72a9 Mon Sep 17 00:00:00 2001 From: parsons Date: Fri, 30 Nov 2007 00:07:49 +0000 Subject: ChangeLogTag: Thu Nov 29 23:58:21 UTC 2007 Jeff Parsons --- TAO/ChangeLog | 12 ++++++++++++ TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp | 18 ++++++++++++++---- TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp | 8 ++++++++ TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp | 8 ++------ TAO/orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp | 11 ++++------- 5 files changed, 40 insertions(+), 17 deletions(-) diff --git a/TAO/ChangeLog b/TAO/ChangeLog index bbe3b25bf29..8bb0aa5580b 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,15 @@ +Thu Nov 29 23:58:21 UTC 2007 Jeff Parsons + + * orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp: + + Fixed bug in storing parent information in the IFR for types + with a single parent (valuetypes and components). Thanks to + Simon Massey for reporting + the problem with valuetypes. + Thu Nov 29 16:58:00 UTC 2007 Simon Massey * tests/Bug_3155_Regression/Bug_3155_Regression.mpc: diff --git a/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp index 281272a5d09..73ac01b9eda 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp @@ -160,6 +160,14 @@ TAO_ComponentDef_i::describe_i (void) this->repo_->config ()->get_string_value (this->section_key_, "base_component", holder); + ACE_Configuration_Section_Key base_key; + this->repo_->config ()->expand_path (this->repo_->root_key (), + holder, + base_key, + 0); + this->repo_->config ()->get_string_value (base_key, + "id", + holder); cd.base_component = holder.fast_rep (); CORBA::ULong count = 0; @@ -425,18 +433,20 @@ TAO_ComponentDef_i::base_component (void) CORBA::ComponentIR::ComponentDef_ptr TAO_ComponentDef_i::base_component_i (void) { - ACE_TString base_id; + ACE_TString base_path; int status = this->repo_->config ()->get_string_value (this->section_key_, "base_component", - base_id); + base_path); if (status != 0) { return CORBA::ComponentIR::ComponentDef::_nil (); } - CORBA::Contained_var obj = this->repo_->lookup_id (base_id.fast_rep ()); + CORBA::Object_var obj = + TAO_IFR_Service_Utils::path_to_ir_object (base_path, + this->repo_); return CORBA::ComponentIR::ComponentDef::_narrow (obj.in ()); } @@ -485,7 +495,7 @@ TAO_ComponentDef_i::base_component_i ( this->repo_->config ()->set_string_value ( this->section_key_, "base_component", - base_component->_interface_repository_id () + base_path ); } diff --git a/TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp index 7e0a06bab6f..cdfaa4890df 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp @@ -688,6 +688,14 @@ TAO_ExtValueDef_i::describe_ext_value_i ( this->repo_->config ()->get_string_value (this->section_key_, "base_value", holder); + ACE_Configuration_Section_Key base_key; + this->repo_->config ()->expand_path (this->repo_->root_key (), + holder, + base_key, + 0); + this->repo_->config ()->get_string_value (base_key, + "id", + holder); fv_desc->base_value = holder.fast_rep (); fv_desc->type = this->type_i (); diff --git a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp index 113fb2736ec..c99ff51797f 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp @@ -978,19 +978,15 @@ TAO_IFR_Service_Utils::gen_valuetype_tc_r ( } } - ACE_TString base_id; + ACE_TString base_path; int status = repo->config ()->get_string_value (key, "base_value", - base_id); + base_path); CORBA::TypeCode_var base_tc = CORBA::TypeCode::_nil (); if (status == 0) { - ACE_TString base_path; - repo->config ()->get_string_value (repo->repo_ids_key (), - base_id.fast_rep (), - base_path); ACE_Configuration_Section_Key base_key; repo->config ()->expand_path (repo->root_key (), base_path, diff --git a/TAO/orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp index 708abb65821..e40bd5610ed 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp @@ -402,22 +402,19 @@ TAO_ValueDef_i::base_value (void) CORBA::ValueDef_ptr TAO_ValueDef_i::base_value_i (void) { - ACE_TString holder; + ACE_TString base_path; int status = this->repo_->config ()->get_string_value (this->section_key_, "base_value", - holder); + base_path); if (status != 0) { return CORBA::ValueDef::_nil (); } - this->repo_->config ()->get_string_value (this->repo_->repo_ids_key (), - holder.fast_rep (), - holder); CORBA::Object_var obj = - TAO_IFR_Service_Utils::path_to_ir_object (holder, + TAO_IFR_Service_Utils::path_to_ir_object (base_path, this->repo_); return CORBA::ValueDef::_narrow (obj.in ()); @@ -463,7 +460,7 @@ TAO_ValueDef_i::base_value_i (CORBA::ValueDef_ptr base_value) this->repo_->config ()->set_string_value ( this->section_key_, "base_value", - base_value->_interface_repository_id () + base_path ); } -- cgit v1.2.1