summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-14 21:14:15 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-14 21:14:15 +0000
commit241fc0c1993c591c6d6232334284e03bca7c32ea (patch)
tree7f481b79d0e6d62be8d4ff6572f295bf2debccfe
parent0b417dfa8184617128cd473cf27a508ff89f7ca9 (diff)
downloadATCD-241fc0c1993c591c6d6232334284e03bca7c32ea.tar.gz
ChangeLogTag: Mon Apr 14 16:10:50 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog_ref15
-rw-r--r--TAO/TAO_IDL/be/be_sequence.cpp24
-rw-r--r--TAO/TAO_IDL/be/be_type.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp29
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp32
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp3
7 files changed, 74 insertions, 38 deletions
diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref
index bd0caab4b1b..a9a08109376 100644
--- a/TAO/ChangeLog_ref
+++ b/TAO/ChangeLog_ref
@@ -1,3 +1,18 @@
+Mon Apr 14 16:10:50 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_sequence.cpp:
+ * TAO_IDL/be/be_type.cpp:
+ * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
+ * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp:
+ * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp:
+ * TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp:
+ * TAO_IDL/be_include/be_type.h:
+
+ Fixed code generation for sequence of forward declared interface
+ from a previous opening of the enclosing module, and for
+ utility functions when nested scoped names repeat after skipping
+ a level.
+
Mon Apr 14 14:33:48 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_sequence.cpp:
diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp
index 0ac64e7f27e..3a072c83d13 100644
--- a/TAO/TAO_IDL/be/be_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_sequence.cpp
@@ -486,8 +486,8 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
if (this->unbounded ())
{
*os << "TAO_Unbounded_Object_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (elem_scope) << "," << be_nl
- << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
+ << elem->nested_type_name (elem_scope) << "," << be_nl;
+ *os << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life," << be_nl
<< elem->fwd_helper_name () << "_cast" << be_uidt_nl
<< ">" << be_uidt;
@@ -495,8 +495,8 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
else
{
*os << "TAO_Bounded_Object_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (elem_scope) << "," << be_nl
- << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
+ << elem->nested_type_name (elem_scope) << "," << be_nl;
+ *os << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life," << be_nl
<< elem->fwd_helper_name () << "_cast," << be_nl
<< this->max_size ()->ev ()->u.ulval << be_uidt_nl
@@ -508,16 +508,16 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
if (this->unbounded ())
{
*os << "TAO_Unbounded_Abstract_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (elem_scope) << "," << be_nl
- << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
+ << elem->nested_type_name (elem_scope) << "," << be_nl;
+ *os << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt;
}
else
{
*os << "TAO_Bounded_Abstract_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (elem_scope) << "," << be_nl
- << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
+ << elem->nested_type_name (elem_scope) << "," << be_nl;
+ *os << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life," << be_nl
<< this->max_size ()->ev ()->u.ulval << be_uidt_nl
<< ">" << be_uidt;
@@ -546,16 +546,16 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
if (this->unbounded ())
{
*os << "TAO_Unbounded_Valuetype_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (elem_scope) << "," << be_nl
- << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
+ << elem->nested_type_name (elem_scope) << "," << be_nl;
+ *os << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt;
}
else
{
*os << "TAO_Bounded_Valuetype_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (elem_scope) << "," << be_nl
- << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
+ << elem->nested_type_name (elem_scope) << "," << be_nl;
+ *os << elem->nested_type_name (elem_scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life," << be_nl
<< this->max_size ()->ev ()->u.ulval << be_uidt_nl
<< ">" << be_uidt;
diff --git a/TAO/TAO_IDL/be/be_type.cpp b/TAO/TAO_IDL/be/be_type.cpp
index 83186208a91..00537bf3ded 100644
--- a/TAO/TAO_IDL/be/be_type.cpp
+++ b/TAO/TAO_IDL/be/be_type.cpp
@@ -232,6 +232,12 @@ be_type::fwd_helper_name (void) const
}
void
+be_type::fwd_helper_name (const char *name)
+{
+ this->fwd_helper_name_ = name;
+}
+
+void
be_type::gen_common_varout (TAO_OutStream *os)
{
if (this->common_varout_gen_ == 1)
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
index 93dd7a643e5..685674b6236 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
@@ -68,10 +68,11 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< node->full_name () << "_ptr" << be_nl
<< fhname << "_life::"
<< "tao_duplicate (" << be_idt << be_idt_nl
- << node->full_name () << "_ptr p" << be_uidt_nl
+ << node->nested_type_name (this->ctx_->scope ())
+ << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << "return " << node->full_name ()
+ << "return " << node->nested_type_name (this->ctx_->scope ())
<< "::_duplicate (p);" << be_uidt_nl
<< "}";
@@ -79,7 +80,8 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "void" << be_nl
<< fhname << "_life::"
<< "tao_release (" << be_idt << be_idt_nl
- << node->full_name () << "_ptr p" << be_uidt_nl
+ << node->nested_type_name (this->ctx_->scope ())
+ << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
<< "CORBA::release (p);" << be_uidt_nl
@@ -92,7 +94,7 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "void" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << "return " << node->full_name ()
+ << "return " << node->nested_type_name (this->ctx_->scope ())
<< "::_nil ();" << be_uidt_nl
<< "}";
@@ -100,7 +102,8 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "CORBA::Boolean" << be_nl
<< fhname << "_life::"
<< "tao_marshal (" << be_idt << be_idt_nl
- << node->name () << "_ptr p," << be_nl
+ << node->nested_type_name (this->ctx_->scope ())
+ << "_ptr p," << be_nl
<< "TAO_OutputCDR &cdr" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
@@ -117,7 +120,7 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << "return " << node->full_name ()
+ << "return " << node->nested_type_name (this->ctx_->scope ())
<< "::_narrow (p ACE_ENV_ARG_PARAMETER);"
<< be_uidt_nl
<< "}";
@@ -129,8 +132,10 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "void *src" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << node->full_name () << " **tmp =" << be_idt_nl
- << "ACE_static_cast (" << node->full_name ()
+ << node->nested_type_name (this->ctx_->scope ())
+ << " **tmp =" << be_idt_nl
+ << "ACE_static_cast ("
+ << node->nested_type_name (this->ctx_->scope ())
<< " **, src);" << be_uidt_nl
<< "return *tmp;" << be_uidt_nl
<< "}";
@@ -140,7 +145,9 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
{
*os << be_nl << be_nl
<< "void" << be_nl
- << "CORBA::release (" << node->name () << "_ptr p)" << be_nl
+ << "CORBA::release ("
+ << node->nested_type_name (this->ctx_->scope ())
+ << "_ptr p)" << be_nl
<< "{" << be_idt_nl
<< "CORBA::AbstractBase_ptr abs = p;" << be_nl
<< "CORBA::release (abs);" << be_uidt_nl
@@ -148,7 +155,9 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << be_nl << be_nl
<< "CORBA::Boolean" << be_nl
- << "CORBA::is_nil (" << node->name () << "_ptr p)" << be_nl
+ << "CORBA::is_nil ("
+ << node->nested_type_name (this->ctx_->scope ())
+ << "_ptr p)" << be_nl
<< "{" << be_idt_nl
<< "CORBA::Object_ptr obj = p;" << be_nl
<< "return CORBA::is_nil (obj);" << be_uidt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp
index b5c8399743e..8be0d364095 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp
@@ -53,6 +53,9 @@ be_visitor_interface_fwd_ch::visit_interface_fwd (be_interface_fwd *node)
// This will be a no-op if it has already been done for this node.
bfd->gen_var_out_seq_decls ();
+ // Copy the fwd helper name back to the forward declared interface node.
+ node->fwd_helper_name (bfd->fwd_helper_name ());
+
node->cli_hdr_gen (I_TRUE);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
index 2a647df034c..faed84b3860 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
@@ -236,8 +236,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
<< node->local_name () << "," << be_nl
<< "TAO_Object_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << "," << be_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
@@ -249,8 +249,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< node->local_name () << "_var," << be_nl
<< "TAO_Object_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << "," << be_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
@@ -262,8 +262,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
<< node->local_name () << "," << be_nl
<< "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << "," << be_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
@@ -275,8 +275,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< node->local_name () << "_var," << be_nl
<< "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << "," << be_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
@@ -288,8 +288,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
<< node->local_name () << "," << be_nl
<< "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << be_uidt_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
@@ -300,8 +300,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< node->local_name () << "_var," << be_nl
<< "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << be_uidt_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_out;" << be_uidt;
@@ -312,8 +312,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
<< node->local_name () << "," << be_nl
<< "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << "," << be_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
@@ -325,8 +325,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< node->local_name () << "_var," << be_nl
<< "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl
- << elem->nested_type_name (scope, "_var") << "," << be_nl
+ << elem->nested_type_name (scope) << "," << be_nl;
+ *os << elem->nested_type_name (scope, "_var") << "," << be_nl
<< elem->fwd_helper_name () << "_life" << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp
index 987845541cc..d97f32902be 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype_fwd/valuetype_fwd_ch.cpp
@@ -50,6 +50,9 @@ be_visitor_valuetype_fwd_ch::visit_valuetype_fwd (be_valuetype_fwd *node)
// This will be a no-op if it has already been done for this node.
bfd->gen_var_out_seq_decls ();
+ // Copy the fwd helper name back to the forward declared interface node.
+ node->fwd_helper_name (bfd->fwd_helper_name ());
+
node->cli_hdr_gen (I_TRUE);
return 0;
}