diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-11-30 00:07:49 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-11-30 00:07:49 +0000 |
commit | cbedd53696ab2290950c5172afaf226dac4f72a9 (patch) | |
tree | 938388f413bf75f5b0f7519ca9d6bfa41a843bd7 | |
parent | b6144d3c3f6bdc60aad96ea96ed4ec7b93c51935 (diff) | |
download | ATCD-cbedd53696ab2290950c5172afaf226dac4f72a9.tar.gz |
ChangeLogTag: Thu Nov 29 23:58:21 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 12 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp | 18 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp | 8 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp | 8 | ||||
-rw-r--r-- | 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 <j.parsons@vanderbilt.edu> + + * 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 <simon dot massey at prismtech dot com> for reporting + the problem with valuetypes. + Thu Nov 29 16:58:00 UTC 2007 Simon Massey <sma@prismtech.com> * 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 ); } |