summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_attr_assign.cpp
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2012-03-23 20:37:27 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2012-03-23 20:37:27 +0000
commite84a7e84fde1f10737693e1fdc66fe3dcd623996 (patch)
tree35f27cd554f73ca5cc816b4f3acb25398dac422b /TAO/TAO_IDL/be/be_visitor_attr_assign.cpp
parent0b920e3b32c34b26392ce6fb4febcd6025a85c09 (diff)
downloadATCD-e84a7e84fde1f10737693e1fdc66fe3dcd623996.tar.gz
Fri Mar 23 20:36:31 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* TAO_IDL/be/be_visitor_attr_assign.cpp: * TAO_IDL/be/be_visitor_attr_return.cpp: Fixed bugzilla 4009, problem generating the CCM executor when we have an attribute of type sequence included from another file
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_attr_assign.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_attr_assign.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_attr_assign.cpp b/TAO/TAO_IDL/be/be_visitor_attr_assign.cpp
index 4845e3572b1..c3003d538dd 100644
--- a/TAO/TAO_IDL/be/be_visitor_attr_assign.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_attr_assign.cpp
@@ -108,13 +108,21 @@ be_visitor_attr_assign::visit_predefined_type (
/// Unused if anonymous types are not allowed.
int
-be_visitor_attr_assign::visit_sequence (be_sequence *node)
+be_visitor_attr_assign::visit_sequence (be_sequence *)
{
+ be_type *bt = this->ctx_->alias ();
+
+ if (bt == 0)
+ {
+ /// Support anonymous types?
+ return -1;
+ }
+
os_ << be_nl
- << "::" << node->full_name () << " * _ciao_tmp = 0;" << be_nl
+ << "::" << bt->full_name () << " * _ciao_tmp = 0;" << be_nl
<< "ACE_NEW (" << be_idt_nl
<< "_ciao_tmp," << be_nl
- << node->full_name () << " (" << this->attr_name_
+ << bt->full_name () << " (" << this->attr_name_
<< "));" << be_uidt_nl << be_nl
<< this->attr_name_string_.c_str () << " = _ciao_tmp;";
@@ -150,7 +158,7 @@ int
be_visitor_attr_assign::visit_typedef (be_typedef *node)
{
this->ctx_->alias (node);
- int status = node->primitive_base_type ()->accept (this);
+ int const status = node->primitive_base_type ()->accept (this);
if (status == -1)
{