summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-07-04 12:50:25 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-07-04 12:50:25 +0000
commit919101785d1f8f2224a00d683f4f73493c197e73 (patch)
tree5fb8630ca2597072798b98b7323f9518d474c5d9 /TAO/orbsvcs
parent39aa2bc64c7c25f6fc49aeda6b1ecb901fc18f4b (diff)
downloadATCD-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.cpp8
-rw-r--r--TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h2
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_.