diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-07-04 12:50:25 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-07-04 12:50:25 +0000 |
commit | 919101785d1f8f2224a00d683f4f73493c197e73 (patch) | |
tree | 5fb8630ca2597072798b98b7323f9518d474c5d9 /TAO/orbsvcs | |
parent | 39aa2bc64c7c25f6fc49aeda6b1ecb901fc18f4b (diff) | |
download | ATCD-919101785d1f8f2224a00d683f4f73493c197e73.tar.gz |
ChangeLogTag: Wed Jul 4 12:39:39 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/orbsvcs')
-rw-r--r-- | TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp | 8 | ||||
-rw-r--r-- | TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp index 30f289b4a0f..f3a324d8e71 100644 --- a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp +++ b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp @@ -2114,7 +2114,7 @@ ifr_adding_visitor::visit_typedef (AST_Typedef *node) try { - this->element_type (node->base_type ()); + this->element_type (node->base_type (), node->owns_base_type ()); CORBA::Container_ptr current_scope = CORBA::Container::_nil (); @@ -2441,9 +2441,11 @@ ifr_adding_visitor::load_any (AST_Expression::AST_ExprValue *ev, } void -ifr_adding_visitor::element_type (AST_Type *base_type) +ifr_adding_visitor::element_type (AST_Type *base_type, bool owned) { - if (base_type->anonymous ()) + // In a typedef of a sequence, the sequence is no longer considered + // anonymous, but instead 'owned' by the typedef, so we check both. + if (base_type->anonymous () || owned) { if (base_type->ast_accept (this) == -1) { diff --git a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h index 73c7257ced6..4689cf2f1bb 100644 --- a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h +++ b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h @@ -140,7 +140,7 @@ protected: CORBA::Any &any); // Determine the primitive type and insert into the Any. - void element_type (AST_Type *base_type); + void element_type (AST_Type *base_type, bool owned = false); // Creates or looks up the element type of an array or sequence, // and stores the result in ir_current_. |