diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2012-03-23 20:37:27 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2012-03-23 20:37:27 +0000 |
commit | e84a7e84fde1f10737693e1fdc66fe3dcd623996 (patch) | |
tree | 35f27cd554f73ca5cc816b4f3acb25398dac422b /TAO/TAO_IDL/be/be_visitor_attr_assign.cpp | |
parent | 0b920e3b32c34b26392ce6fb4febcd6025a85c09 (diff) | |
download | ATCD-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.cpp | 16 |
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) { |