summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-11-30 00:07:49 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-11-30 00:07:49 +0000
commitcbedd53696ab2290950c5172afaf226dac4f72a9 (patch)
tree938388f413bf75f5b0f7519ca9d6bfa41a843bd7
parentb6144d3c3f6bdc60aad96ea96ed4ec7b93c51935 (diff)
downloadATCD-cbedd53696ab2290950c5172afaf226dac4f72a9.tar.gz
ChangeLogTag: Thu Nov 29 23:58:21 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog12
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp18
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/ExtValueDef_i.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp11
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
);
}